結果
問題 | No.1650 Moving Coins |
ユーザー |
|
提出日時 | 2025-01-17 08:23:17 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 351 ms / 2,000 ms |
コード長 | 932 bytes |
コンパイル時間 | 209 ms |
コンパイル使用メモリ | 82,048 KB |
実行使用メモリ | 184,208 KB |
最終ジャッジ日時 | 2025-01-17 08:23:28 |
合計ジャッジ時間 | 11,530 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 24 |
ソースコード
from collections import dequeN = int(input())A = list(map(int,input().split()))B = list(map(int,input().split()))Pos = [0]*(2*N+1)for i in range(N):Pos[i+1] = A[i]Pos[N+i+1] = B[i]G = {i:[] for i in range(1,N+1)}Indeg = {i:0 for i in range(1,N+1)}for i in range(1,N+1):if Pos[i]<=Pos[N+i]:if i>1 and Pos[i]<=Pos[N+i-1]<=Pos[N+i]:G[i].append(i-1)Indeg[i-1] += 1else:if i<N and Pos[N+i]<=Pos[N+i+1]<=Pos[i]:G[i].append(i+1)Indeg[i+1] += 1ans = []que = deque([])for i in range(1,N+1):if Indeg[i]==0:que.append(i)while que:x = que.popleft()i = x+Nif Pos[i]>=Pos[x]:for j in range(Pos[i]-Pos[x]):ans.append((x,"R"))else:for j in range(Pos[x]-Pos[i]):ans.append((x,"L"))if G[x]:que.append(G[x][0])print(len(ans))for i,d in ans:print(i,d)