結果
問題 | No.2989 Fibonacci Prize |
ユーザー |
![]() |
提出日時 | 2024-12-14 01:06:57 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 112 ms / 2,000 ms |
コード長 | 724 bytes |
コンパイル時間 | 2,214 ms |
コンパイル使用メモリ | 82,176 KB |
実行使用メモリ | 137,728 KB |
最終ジャッジ日時 | 2024-12-14 01:07:09 |
合計ジャッジ時間 | 7,242 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 77 |
ソースコード
n,m=map(int,input().split()) if n==1: if m==1: print(2) elif m==2: print(2) else: print((m-2)*(m-3)//2+m+1) exit() if m==1: print(0) exit() if m==2: print(0) exit() if m==3: if n==2: print(2) else: print(0) exit() loop=[0,1] while True: loop.append((loop[-1]+loop[-2]+1)%n) if loop[-1]==loop[-2]==0: break loop=loop[1:] cnt=[0]*n cnt[0]=1 l=len(loop) p=(m-2)//l for i in loop: cnt[i]+=p for i in range((m-2)%l): cnt[loop[i]]+=1 ans=0 last=(loop[(m-2)%l]-loop[(m-3)%l])%n if last==0: ans+=1 last=(loop[(m-2)%l]-loop[(m-4)%l])%n if last==0: ans+=1 last=(loop[(m-1)%l]-loop[(m-2)%l])%n if last==0: ans+=1 for i in cnt: ans+=i*(i-1)//2 print(ans)