結果
| 問題 | No.3562 Communicate Sorted Vector |
| コンテスト | |
| ユーザー |
jastaway
|
| 提出日時 | 2026-05-27 00:44:36 |
| 言語 | PyPy3 (7.3.17) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 1,230 bytes |
| 記録 | |
| コンパイル時間 | 214 ms |
| コンパイル使用メモリ | 85,120 KB |
| 実行使用メモリ | 141,496 KB |
| 最終ジャッジ日時 | 2026-05-29 18:46:52 |
| 合計ジャッジ時間 | 7,045 ms |
|
ジャッジサーバーID (参考情報) |
judge2_1 / judge2_0 |
(要ログイン)
| サブタスク | 配点 | 結果 |
|---|---|---|
| 部分点1 | 10 % | TLE * 1 -- * 44 |
| 部分点2 | 25 % | -- * 45 |
| 部分点3 | 65 % | -- * 46 |
| 合計 | 0 点 |
ソースコード
import sys
def solve():
# 入力をすべて取得
input_data = sys.stdin.read().split()
if not input_data:
return
player = input_data[0]
N = int(input_data[1])
Q = int(input_data[2])
if player == "Alice":
# Aliceパート: 数列Aを読み込む
A = [int(x) for x in input_data[3:3+N]]
# 差分を計算
D = []
prev = 0
for a in A:
D.append(a - prev)
prev = a
# 差分を2進数文字列に変換 (先頭の '0b' は除く)
S = [bin(d)[2:] for d in D]
# 出力 (K と 各文字列)
print(len(S), flush=True)
for s in S:
print(s, flush=True)
elif player == "Bob":
# Bobパート: Aliceからの出力を読み込む
K = int(input_data[3])
S = input_data[4:4+K]
# 2進数から差分を復元し、累積和をとってAを復元
A = []
curr = 0
for s in S:
d = int(s, 2)
curr += d
A.append(curr)
# 復元した配列を出力
print(*(A), flush=True)
if __name__ == '__main__':
solve()
jastaway