結果
| 問題 |
No.2965 Don't Stop the Game again
|
| コンテスト | |
| ユーザー |
遭難者
|
| 提出日時 | 2024-10-28 23:53:03 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 117 ms / 2,024 ms |
| コード長 | 888 bytes |
| コンパイル時間 | 440 ms |
| コンパイル使用メモリ | 82,100 KB |
| 実行使用メモリ | 71,416 KB |
| 平均クエリ数 | 297.84 |
| 最終ジャッジ日時 | 2024-10-28 23:53:12 |
| 合計ジャッジ時間 | 8,348 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 45 |
ソースコード
N = 50
P = int(input())
Q = list(map(int, input().split()))
idx_one = -1
for i in range(len(Q)):
if Q[i] == 1:
idx_one = i
break
ops = []
for j in range(N):
ops.append((1, j + 1))
idxs = []
for i in range(N):
if i != idx_one:
idxs.append(i)
pp = 1
while (1 << pp) <= P:
pp += 1
prev = idx_one
for i in range(pp):
ops.append((4, prev + 1, prev + 1, idxs[i] + 1))
prev = idxs[i]
tas = []
now = P
for i in range(pp):
if (now >> i) & 1:
tas.append(idxs[i])
if len(tas) == 1:
idxs[pp] = tas[0]
else:
ops.append((4, tas[0] + 1, tas[1] + 1, idxs[pp] + 1))
for i in range(2, len(tas)):
ops.append((4, tas[i] + 1, idxs[pp] + 1, idxs[pp] + 1))
for i in range(N):
if not i in [idx_one, idxs[pp]]:
ops.append((3, idxs[pp] + 1, i + 1, i + 1))
print(len(ops))
for op in ops:
print(op[0])
print(*op[1:])
遭難者