結果
| 問題 |
No.1436 Rgaph
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2021-03-19 23:36:32 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,677 bytes |
| コンパイル時間 | 280 ms |
| コンパイル使用メモリ | 82,116 KB |
| 実行使用メモリ | 79,580 KB |
| 最終ジャッジ日時 | 2024-11-19 02:19:32 |
| 合計ジャッジ時間 | 6,815 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 WA * 1 |
| other | AC * 16 WA * 12 |
ソースコード
import sys,random,bisect
from collections import deque,defaultdict
from heapq import heapify,heappop,heappush
from itertools import permutations
from math import log,gcd
input = lambda :sys.stdin.readline().rstrip()
mi = lambda :map(int,input().split())
li = lambda :list(mi())
N,M = mi()
edge = [[] for i in range(N)]
idx = {}
for _ in range(M):
a,b = mi()
edge[a-1].append(b-1)
idx[a-1,b-1] = _
for s in range(N):
visit = [[False,False] for i in range(N)]
visit[s][0] = True
stack = [(s,0)]
while stack:
v,p = stack.pop()
for nv in edge[v]:
if not visit[nv][1-p]:
visit[nv][1-p] = True
stack.append((nv,1-p))
if any(not visit[i][0] for i in range(N)):
exit(print(-1))
visited = set([0])
res = [0]
pos = edge[0][0]
while pos not in visited:
visited.add(pos)
res.append(pos)
pos = edge[pos][0]
start = -1
k = len(res)
for i in range(k):
if res[i]==pos:
start = i
break
ans = ["" for i in range(M)]
cnt = k - start
red = 0
for i in range(start,k):
if i!=k-1:
u,v = res[i],res[i+1]
if red < (cnt)//2+1:
ans[idx[u,v]] = "R"
red += 1
else:
ans[idx[u,v]] = "G"
else:
u,v = res[i],res[start]
if red < (cnt)//2+1:
ans[idx[u,v]] = "R"
red += 1
else:
ans[idx[u,v]] = "G"
for i in range(M):
if ans[i]=="":
ans[i] = "G"
p = [-1 for i in range(N)]
for i in range(N):
if len(edge[i])==1:
p[i] = edge[i][0]
else:
break
else:
exit(print(-1))
random.shuffle(ans)
print("".join(ans))