結果

問題 No.2619 Sorted Nim
ユーザー とりゐ
提出日時 2024-01-26 22:35:50
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 107 ms / 2,000 ms
コード長 728 bytes
コンパイル時間 466 ms
コンパイル使用メモリ 82,260 KB
実行使用メモリ 107,012 KB
最終ジャッジ日時 2024-09-28 08:34:16
合計ジャッジ時間 7,973 ms
ジャッジサーバーID
(参考情報)
judge1 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 62
権限があれば一括ダウンロードができます

ソースコード

diff #

import itertools

s={}

def naive(a):
  if max(a)==0:
    return 0
  if tuple(a) in s:
    return s[tuple(a)]
  g=set()
  res=[]
  for i in range(len(a)):
    for j in range(1,a[i]+1):
      b=a.copy()
      b[i]-=j
      if b==sorted(b):
        g.add(naive(b))
  
  t=0
  while t in g:
    t+=1
  s[tuple(a)]=t
  return t

def solve(a):
  b=a.copy()
  if len(a)%2==1:
    b=[0]+a
  xor=0
  for i in range(0,len(b),2):
    xor^=b[i+1]-b[i]
  return xor

import random
for _ in range(0):
  n=random.randint(3,5)
  a=[random.randint(1,5) for i in range(n)]
  a.sort()
  if naive(a)!=solve(a):
    print(a,naive(a),solve(a))

n=int(input())
a=list(map(int,input().split()))
if solve(a)!=0:
  print('First')
else:
  print('Second')
0