Submission #1765688
Source Code Expand
#include <bits/stdc++.h> #define rep(i,n) for(int i=0;i<(int)(n);i++) #define rep1(i,n) for(int i=1;i<=(int)(n);i++) #define all(c) c.begin(),c.end() #define pb push_back #define fs first #define sc second #define show(x) cout << #x << " = " << x << endl #define chmin(x,y) x=min(x,y) #define chmax(x,y) x=max(x,y) using namespace std; template<class S,class T> ostream& operator<<(ostream& o,const pair<S,T> &p){return o<<"("<<p.fs<<","<<p.sc<<")";} template<class T> ostream& operator<<(ostream& o,const vector<T> &vc){o<<"sz = "<<vc.size()<<endl<<"[";for(const T& v:vc) o<<v<<",";o<<"]";return o;} string sa,sb; const int MN = 2010; int a[MN],b[MN]; int N; int needl[MN],needr[MN]; int calc(int L,int R,int i){ chmax(L,i); int res = R*2 + L + (L-i); return res; } int solve(){ rep(i,N){ for(int t=0;;t++){ int j = (i-t+N)%N; if(b[j]){ needl[i] = t; break; } } } rep(i,N){ for(int t=0;;t++){ int j = (i+t)%N; if(b[j]){ needr[i] = t; break; } } } int res = 1e9; rep(i,N){ vector<int> difs; rep(x,N){ if(a[(i+x)%N]!=b[x]) difs.pb((i+x)%N); } using P = pair<int,int>; vector<P> vp; for(int d:difs){ if(needl[d]<=i) continue; vp.pb(P(needl[d],needr[d])); } sort(all(vp),greater<P>()); int tmp = 1e9; int L = N-1, R = 0; for(P p:vp){ L = p.fs; chmin(tmp,calc(L,R,i)); chmax(R,p.sc); } L = 0; chmin(tmp,calc(L,R,i)); if(vp.empty()) tmp = i; tmp += difs.size(); chmin(res,tmp); } return res; } int main(){ cin>>sa>>sb; N = sa.size(); rep(i,N){ a[i] = sa[i]=='1'; b[i] = sb[i]=='1'; } if(sb == string(N,'0')){ if(sa == string(N,'0')) puts("0"); else puts("-1"); return 0; } int ans = 1e9; rep(tt,2){ chmin(ans,solve()); reverse(a,a+N); reverse(b,b+N); } cout<<ans<<endl; }
Submission Info
Submission Time | |
---|---|
Task | D - Shift and Flip |
User | sigma425 |
Language | C++14 (GCC 5.4.1) |
Score | 1000 |
Code Size | 1916 Byte |
Status | AC |
Exec Time | 166 ms |
Memory | 384 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 1000 / 1000 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt |
All | sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt, sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_16.txt, subtask_1_17.txt, subtask_1_18.txt, subtask_1_19.txt, subtask_1_20.txt, subtask_1_21.txt, subtask_1_22.txt, subtask_1_23.txt, subtask_1_24.txt, subtask_1_25.txt, subtask_1_26.txt, subtask_1_27.txt, subtask_1_28.txt, subtask_1_29.txt, subtask_1_30.txt, subtask_1_31.txt, subtask_1_32.txt, subtask_1_33.txt, subtask_1_34.txt, subtask_1_35.txt, subtask_1_36.txt, subtask_1_37.txt, subtask_1_38.txt, subtask_1_39.txt, subtask_1_40.txt, subtask_1_41.txt, subtask_1_42.txt, subtask_1_43.txt, subtask_1_44.txt, subtask_1_45.txt, subtask_1_46.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
sample_01.txt | AC | 1 ms | 256 KB |
sample_02.txt | AC | 1 ms | 256 KB |
sample_03.txt | AC | 1 ms | 256 KB |
sample_04.txt | AC | 1 ms | 256 KB |
subtask_1_01.txt | AC | 1 ms | 256 KB |
subtask_1_02.txt | AC | 1 ms | 256 KB |
subtask_1_03.txt | AC | 1 ms | 256 KB |
subtask_1_04.txt | AC | 1 ms | 256 KB |
subtask_1_05.txt | AC | 42 ms | 256 KB |
subtask_1_06.txt | AC | 1 ms | 256 KB |
subtask_1_07.txt | AC | 27 ms | 256 KB |
subtask_1_08.txt | AC | 1 ms | 256 KB |
subtask_1_09.txt | AC | 1 ms | 256 KB |
subtask_1_10.txt | AC | 1 ms | 256 KB |
subtask_1_11.txt | AC | 90 ms | 256 KB |
subtask_1_12.txt | AC | 88 ms | 256 KB |
subtask_1_13.txt | AC | 90 ms | 256 KB |
subtask_1_14.txt | AC | 166 ms | 256 KB |
subtask_1_15.txt | AC | 108 ms | 256 KB |
subtask_1_16.txt | AC | 77 ms | 256 KB |
subtask_1_17.txt | AC | 76 ms | 256 KB |
subtask_1_18.txt | AC | 68 ms | 256 KB |
subtask_1_19.txt | AC | 76 ms | 256 KB |
subtask_1_20.txt | AC | 83 ms | 256 KB |
subtask_1_21.txt | AC | 133 ms | 256 KB |
subtask_1_22.txt | AC | 133 ms | 256 KB |
subtask_1_23.txt | AC | 141 ms | 256 KB |
subtask_1_24.txt | AC | 141 ms | 384 KB |
subtask_1_25.txt | AC | 141 ms | 256 KB |
subtask_1_26.txt | AC | 1 ms | 256 KB |
subtask_1_27.txt | AC | 2 ms | 256 KB |
subtask_1_28.txt | AC | 5 ms | 256 KB |
subtask_1_29.txt | AC | 17 ms | 256 KB |
subtask_1_30.txt | AC | 64 ms | 256 KB |
subtask_1_31.txt | AC | 1 ms | 256 KB |
subtask_1_32.txt | AC | 1 ms | 256 KB |
subtask_1_33.txt | AC | 2 ms | 256 KB |
subtask_1_34.txt | AC | 6 ms | 256 KB |
subtask_1_35.txt | AC | 17 ms | 256 KB |
subtask_1_36.txt | AC | 67 ms | 256 KB |
subtask_1_37.txt | AC | 1 ms | 256 KB |
subtask_1_38.txt | AC | 2 ms | 256 KB |
subtask_1_39.txt | AC | 5 ms | 256 KB |
subtask_1_40.txt | AC | 18 ms | 256 KB |
subtask_1_41.txt | AC | 64 ms | 256 KB |
subtask_1_42.txt | AC | 63 ms | 256 KB |
subtask_1_43.txt | AC | 65 ms | 256 KB |
subtask_1_44.txt | AC | 69 ms | 256 KB |
subtask_1_45.txt | AC | 66 ms | 384 KB |
subtask_1_46.txt | AC | 67 ms | 256 KB |