結果
| 問題 |
No.1004 サイコロの実装 (2)
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2023-05-20 04:32:37 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,025 bytes |
| コンパイル時間 | 148 ms |
| コンパイル使用メモリ | 82,316 KB |
| 実行使用メモリ | 67,132 KB |
| 最終ジャッジ日時 | 2024-12-21 05:39:21 |
| 合計ジャッジ時間 | 3,010 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 6 WA * 30 RE * 2 |
ソースコード
a, b, x, N = map(int, input().split())
X = [x]
while True:
nxt = (X[-1]*a+b)%6
if nxt in X:
break
X.append(nxt)
nowT = 0
nowA = 0
cntT = [0, 0]
cntA = [0, 0]
seenT = set()
seenA = set()
cnt = -1
si = 0
for i in range(N):
saiT = X[si%len(X)]+1
if (nowT, saiT) in seenT:
cnt = i+1
break
seenT.add((nowT, saiT))
nowT += saiT
nowT %= 2
cntT[nowT]+=1
si += 1
saiA = X[si%len(X)]+1
if (nowA, saiA) in seenA:
assert()
break
seenA.add((nowA, saiA))
nowA += saiA
nowA %= 2
cntA[nowA]+=1
si+=1
if cnt==-1:
scoT = min(cntT)
scoA = min(cntA)
print(scoT, scoA)
exit()
c = N//cnt
m = N%cnt
cntT = [cntT[0]*c, cntT[1]*c]
cntA = [cntA[0]*c, cntA[1]*c]
for i in range(m):
saiT = X[si%len(X)]+1
nowT += saiT
nowT %= 2
cntT[nowT]+=1
si += 1
seenA.add((nowA, saiA))
nowA += saiA
nowA %= 2
cntA[nowA]+=1
si+=1
scoT = min(cntT)
scoA = min(cntA)
print(scoT, scoA)