結果
| 問題 |
No.2393 Bit Grid Connected Component
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2023-07-28 22:01:12 |
| 言語 | D (dmd 2.109.1) |
| 結果 |
AC
|
| 実行時間 | 248 ms / 2,000 ms |
| コード長 | 934 bytes |
| コンパイル時間 | 1,667 ms |
| コンパイル使用メモリ | 176,032 KB |
| 実行使用メモリ | 7,808 KB |
| 最終ジャッジ日時 | 2024-10-06 18:47:47 |
| 合計ジャッジ時間 | 4,038 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 20 |
ソースコード
import std;
void main () {
int T = readln.chomp.to!int;
foreach (_; 0..T) {
long x;
int y;
readln.read(x, y);
solve(x, y);
}
}
void solve (long x, int y) {
byte[64] bit;
bit[] = 0;
// x を2進数変換
int i = 0;
long base = 2;
while (x != 0) {
bit[i] = cast(byte) (x % base);
x /= base;
i++;
}
/* visualize
bit.each!(a => write(a));
write("\n");
*/
// yからたどれる一番右に行く
while (true) {
if (bit[y+1] == 0) {
break;
}
y++;
}
// 最大高さyであるような連結成分を出力
long res = 0;
while (y >= 0) {
res += pow(2L, y);
y--;
}
// output
writeln(res);
}
void read(T...)(string S, ref T args) {
auto buf = S.split;
foreach (i, ref arg; args) {
arg = buf[i].to!(typeof(arg));
}
}