結果
問題 | No.1544 [Cherry 2nd Tune C] Synchroscope |
ユーザー | kotatsugame |
提出日時 | 2021-06-11 21:32:38 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 274 ms / 2,000 ms |
コード長 | 848 bytes |
コンパイル時間 | 685 ms |
コンパイル使用メモリ | 68,724 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-12-14 22:31:31 |
合計ジャッジ時間 | 2,759 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 48 |
コンパイルメッセージ
a.cpp:7:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
ソースコード
#line 1 "a.cpp" #include<iostream> #include<algorithm> using namespace std; #line 1 "/home/kotatsugame/library/math/extgcd.cpp" template<typename T> T extgcd(T a,T b,T&x,T&y) { if(b==0) { x=1; y=0; return a; } T q=a/b; T g=extgcd(b,a-q*b,y,x); y-=q*x; return g; } #line 5 "a.cpp" int N,M; int A[5000],B[5000]; main() { cin>>N>>M; for(int i=0;i<N;i++)cin>>A[i]; for(int i=0;i<M;i++)cin>>B[i]; long ans=9e18; for(int i=0;i<N;i++)for(int j=0;j<M;j++)if(A[i]==B[j]) { long x,y; long g=extgcd<long>(N,M,x,y); if((j-i)%g!=0)continue; int n=N/g,m=M/g; int t=(j-i)/g; x*=t,y*=t; y=-y; { int l=min(x/m,-y/n); if(l>=0)x-=m*l,y+=n*l; } { int r=min(-x/m,y/n); if(r>=0)x+=m*r,y-=n*r; } while(x>=m)x-=m,y+=n; while(x<0)x+=m,y-=n; ans=min(ans,x*N+i); } if(ans==(long)9e18)ans=-2; cout<<ans+1<<endl; }