結果
問題 | No.1544 [Cherry 2nd Tune C] Synchroscope |
ユーザー | Anumish |
提出日時 | 2021-06-11 21:46:04 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 293 ms / 2,000 ms |
コード長 | 2,162 bytes |
コンパイル時間 | 963 ms |
コンパイル使用メモリ | 97,312 KB |
最終ジャッジ日時 | 2025-01-22 05:41:20 |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 48 |
ソースコード
//#pragma GCC optimize ("O3") //#pragma GCC target ("sse4") //#pragma GCC optimize("Ofast") //#pragma GCC optimize("Ofast,unroll-loops") //#pragma GCC target("avx,avx2,fma") #include <algorithm> #include <array> #include <cassert> //#include <chrono> #include <cmath> //#include <cstring> //#include <functional> //#include <iomanip> #include <iostream> #include <map> //#include <numeric> //#include <queue> //#include <random> #include <set> #include <vector> using namespace std; #define FAST ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0) //#include <ext/pb_ds/assoc_container.hpp> //#include <ext/pb_ds/tree_policy.hpp> //using namespace __gnu_pbds; #define int long long #define ll int #define all(a) a.begin(),a.end() #define rev(a) a.rbegin(),a.rend() //typedef tree<int, null_type, less_equal<int>, rb_tree_tag, tree_order_statistics_node_update> ordered_set; //less_equal for multiset #define ar array #define pb push_back #define fi(a,b) for(int i=a;i<(b);i++) #define fj(a,b) for(int j=a;j<(b);j++) #define fk(a,b) for(int k=a;k<(b);k++) const double pi=acosl(-1); void solve() { int n,m; cin>>n>>m; vector<int> a(n); fi(0,n) { cin>>a[i]; } vector<int> b(m); fi(0,m) { cin>>b[i]; } int ans=1e18; fi(0,n) { vector<int> vis(m); fj(0,m) { if(a[i]==b[j]) vis[j]=1; } for(int moves=0;moves<=5001;moves++) { if(vis[(moves*n+i)%m]) { ans=min(ans,moves*n+i+1); } } } if(ans==1e18) ans=-1; cout<<ans<<'\n'; } signed main() { FAST; int tt=1; //cin>>tt; while(tt--) { solve(); } } //int dx[] = {+1,-1,+0,+0,-1,-1,+1,+1}; // Eight Directions //int dy[] = {+0,+0,+1,-1,+1,-1,-1,+1}; // Eight Directions //int dx[]= {-2,-2,-1,1,-1,1,2,2}; // Knight moves //int dy[]= {1,-1,-2,-2,2,2,-1,1}; // Knight moves // For (a^b)%mod, where b is large, replace b by b%(mod-1)..{because we solve this by introducing log ..do same for general cases} // a+b = (a|b)+(a&b) // a+b = 2*(a&b)+(a^b)