結果
| 問題 | No.3617 Swap |
| コンテスト | |
| ユーザー |
kidodesu
|
| 提出日時 | 2026-08-06 14:55:16 |
| 言語 | PyPy3 (7.3.17) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 1,148 bytes |
| 記録 | |
| コンパイル時間 | 226 ms |
| コンパイル使用メモリ | 96,108 KB |
| 実行使用メモリ | 306,488 KB |
| 最終ジャッジ日時 | 2026-08-06 14:55:24 |
| 合計ジャッジ時間 | 6,512 ms |
|
ジャッジサーバーID (参考情報) |
judge2_0 / judge3_0 |
(要ログイン)
| サブタスク | 配点 | 結果 |
|---|---|---|
| サンプル | 0 % | AC * 4 |
| 小課題1 | 5 % | AC * 3 |
| 小課題2 | 5 % | AC * 3 TLE * 1 -- * 1 |
| 小課題3 | 15 % | -- * 14 |
| 小課題4 | 20 % | -- * 21 |
| 小課題5 | 25 % | -- * 8 |
| 小課題6 | 10 % | -- * 8 |
| 小課題7 | 20 % | AC * 7 TLE * 1 -- * 48 |
| 合計 | 3 * 5% = 15 点 |
ソースコード
def main():
n, m, q = list(map(int, input().split()))
LR = [list(map(lambda x: int(x)-1, input().split())) for _ in range(m)]
Q = [list(map(int, input().split())) + [_]for _ in range(q)]
for i in range(q): Q[i][1] -= 1
#E = [(i, n+1, -1) for i in range(m)]
E = [[] for _ in range(m)]
for t, x, idx in Q:
E[t%m].append((x, idx))
I = [i for i in range(n)]
for t in range(m):
for x, idx in E[t]:
Q[idx][1] = I[x]
Q[idx][0] -= t
l, r = LR[t]
I[l], I[r] = I[r], I[l]
Ans = [-1] * q
dub = [[I[j] for j in range(n)] for i in range(60)]
for i in range(1, 60):
for u in range(n):
dub[i][u] = dub[i-1][dub[i-1][u]]
I = [i for i in range(n)]
time = 0
J = [i for i in range(q)]
J.sort(key = lambda x: Q[x][0])
for j in J:
t, x, idx = Q[j]
t //= m
k = t-time
i = 0
while k:
if k & 1:
I = [dub[i][I[u]] for u in range(n)]
i += 1
k >>= 1
Ans[idx] = I[x]
time = t
for ans in Ans:
print(ans+1)
main()
kidodesu