結果
| 問題 |
No.1544 [Cherry 2nd Tune C] Synchroscope
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 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;
}