Submission #1543150
Source Code Expand
#include<stdio.h> #include<vector> #include<algorithm> #include<string> #include<iostream> using namespace std; int las[20000],rlas[20000]; typedef pair<int,int>pii; int solve(string sa,string sb) { int num=sa.size(); sa=sa+sa+sa+sa+sa,sb=sb+sb+sb+sb+sb; for(int i=1;i<sb.size();i++) { las[i]=las[i-1]; if(sb[i]=='1')las[i]=i; } for(int i=sb.size()-2;i>=0;i--) { rlas[i]=rlas[i+1]; if(sb[i]=='1')rlas[i]=i; } int mini=1000000000; for(int p=0;p<num;p++) { vector<pii>v; int cnt=0; //printf("- %d\n",p); for(int i=num+num;i<num+num+num;i++) { if(sa[i]==sb[i+p])continue; pii z=make_pair(0,0); if(las[i+p]<i)z.first=i-las[i+p]; if(rlas[i]>i+p)z.second=rlas[i]-(i+p); v.push_back(z); cnt++; //printf("%d %d %d\n",i-num-num,z.first,z.second); } sort(v.begin(),v.end()); reverse(v.begin(),v.end()); int now=0; int mi=1000000000; for(int i=0;i<v.size();i++) { mi=min(mi,(v[i].first+now)*2+cnt+p); now=max(now,v[i].second); } mi=min(mi,now*2+cnt+p); mi=min(mi,num+cnt+p); //printf(" %d\n",mi); mini=min(mini,mi); } return mini; } int main() { string sa,sb; cin>>sa>>sb; if(sa==sb) { printf("0\n"); return 0; } int cnt=0; for(int i=0;i<sb.size();i++)if(sb[i]=='1')cnt++; if(cnt==0) { printf("-1\n"); return 0; } int ans1=solve(sa,sb); reverse(sa.begin(),sa.end()); reverse(sb.begin(),sb.end()); int ans2=solve(sa,sb); printf("%d\n",min(ans1,ans2)); }
Submission Info
Submission Time | |
---|---|
Task | D - Shift and Flip |
User | DEGwer |
Language | C++14 (GCC 5.4.1) |
Score | 1000 |
Code Size | 1521 Byte |
Status | AC |
Exec Time | 314 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 | 189 ms | 384 KB |
subtask_1_06.txt | AC | 1 ms | 256 KB |
subtask_1_07.txt | AC | 1 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 | 2 ms | 256 KB |
subtask_1_11.txt | AC | 127 ms | 384 KB |
subtask_1_12.txt | AC | 144 ms | 384 KB |
subtask_1_13.txt | AC | 127 ms | 384 KB |
subtask_1_14.txt | AC | 136 ms | 384 KB |
subtask_1_15.txt | AC | 133 ms | 384 KB |
subtask_1_16.txt | AC | 126 ms | 384 KB |
subtask_1_17.txt | AC | 121 ms | 384 KB |
subtask_1_18.txt | AC | 120 ms | 384 KB |
subtask_1_19.txt | AC | 127 ms | 384 KB |
subtask_1_20.txt | AC | 121 ms | 384 KB |
subtask_1_21.txt | AC | 125 ms | 384 KB |
subtask_1_22.txt | AC | 123 ms | 384 KB |
subtask_1_23.txt | AC | 314 ms | 384 KB |
subtask_1_24.txt | AC | 314 ms | 384 KB |
subtask_1_25.txt | AC | 314 ms | 384 KB |
subtask_1_26.txt | AC | 1 ms | 256 KB |
subtask_1_27.txt | AC | 2 ms | 256 KB |
subtask_1_28.txt | AC | 6 ms | 256 KB |
subtask_1_29.txt | AC | 25 ms | 256 KB |
subtask_1_30.txt | AC | 107 ms | 384 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 | 7 ms | 256 KB |
subtask_1_35.txt | AC | 24 ms | 256 KB |
subtask_1_36.txt | AC | 107 ms | 384 KB |
subtask_1_37.txt | AC | 1 ms | 256 KB |
subtask_1_38.txt | AC | 2 ms | 256 KB |
subtask_1_39.txt | AC | 7 ms | 256 KB |
subtask_1_40.txt | AC | 26 ms | 384 KB |
subtask_1_41.txt | AC | 97 ms | 384 KB |
subtask_1_42.txt | AC | 96 ms | 384 KB |
subtask_1_43.txt | AC | 103 ms | 384 KB |
subtask_1_44.txt | AC | 106 ms | 384 KB |
subtask_1_45.txt | AC | 106 ms | 384 KB |
subtask_1_46.txt | AC | 105 ms | 384 KB |