結果
| 問題 |
No.1149 色塗りゲーム
|
| コンテスト | |
| ユーザー |
lllllll88938494
|
| 提出日時 | 2023-05-09 20:44:06 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
AC
|
| 実行時間 | 171 ms / 2,000 ms |
| コード長 | 3,091 bytes |
| コンパイル時間 | 156 ms |
| コンパイル使用メモリ | 13,184 KB |
| 実行使用メモリ | 28,256 KB |
| 平均クエリ数 | 20.92 |
| 最終ジャッジ日時 | 2024-11-26 06:13:44 |
| 合計ジャッジ時間 | 8,480 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 50 |
ソースコード
n=int(input())
g=[0]*(n+1)
for i in range(1,n+1):
g[i] = i%3
g=[0, 1, 2, 3, 1, 4, 3, 2, 1, 4, 2, 6, 4, 1, 2, 7, 1, 4, 3, 2, 1, 4, 6, 7, 4, 1, 2, 8, 5, 4, 7, 2, 1, 8, 6, 7, 4, 1, 2, 3, 1, 4, 7, 2, 1, 8, 2, 7, 4, 1, 2, 8, 1, 4, 7, 2, 1, 4, 2, 7, 4, 1, 2, 8, 1, 4, 7, 2, 1, 8, 6, 7, 4, 1, 2, 8, 1, 4, 7, 2, 1, 8, 2, 7, 4, 1, 2, 8, 1, 4, 7, 2, 1, 8, 2, 7, 4, 1, 2, 8, 1]
f = [0]*(n)
bb=[]
while True:
gs = 0
x = []
t = 0
for i in range(n):
if f[i] == 0:
t += 1
elif f[i] == 1:
if t > 0:
x.append(t)
gs^=g[t]
x.append(0)
t = 0
if i == n-1 and t > 0:
x.append(t)
gs^=g[t]
cnt=0
ff=0
for i in x:
if i == 0:
cnt+=1
continue
ff = 0
for k in range(1,i+1):
ts=gs
l,r = k-1,i-k
ts^=g[i]
ts^=g[l]
ts^=g[r]
cnt += 1
if ts == 0:
ff = 1
break
if ff:
break
if ff == 1:
print(1,cnt,flush=True)
bb.append((1,cnt,'x'))
f[cnt-1] = 1
v=int(input())
assert v != 2,(n,bb)
assert v != 1,(n,bb)
if v == 0:
exit()
xx,yy=map(int,input().split())
bb.append((xx,yy,'y'))
if xx == 0:
exit()
if xx == 1:
f[yy-1] = 1
else:
f[yy-1] = 1
f[yy] = 1
continue
cnt=0
for i in x:
if i <= 1:
cnt+=1
continue
ff = 0
for k in range(1,i+1):
if k == i:
cnt+=1
continue
ts=gs
l,r = k-1,i-(k+1)
ts^=g[i]
ts^=g[l]
ts^=g[r]
cnt += 1
if ts == 0:
ff = 1
break
if ff:
break
if ff == 1:
print(2,cnt,flush=True)
bb.append((2,cnt,'x'))
f[cnt-1] = 1
f[cnt] = 1
v=int(input())
assert v != 2,(n,bb)
assert v != 1,(n,bb)
if v == 0:
exit()
xx,yy=map(int,input().split())
bb.append((xx,yy,'y'))
if xx == 1:
f[yy-1] = 1
else:
f[yy-1] = 1
f[yy] = 1
continue
cnt=0
for i in x:
if i == 0:
cnt+=1
continue
if i>0:
cnt+=i
f[cnt-1] = 1
print(1,cnt,flush=True)
bb.append((1,cnt,'x'))
v=int(input())
assert v != 2,(n,bb)
assert v != 1,(n,bb)
if v == 0:
exit()
xx,yy=map(int,input().split())
bb.append((xx,yy,'y'))
if xx == 1:
f[yy-1] = 1
else:
f[yy-1] = 1
f[yy] = 1
break
lllllll88938494