Submission #6363513
Source Code Expand
#include <bits/stdc++.h> using namespace std; using pii = pair<int,int>; #define f(i,a,b) for (int i = a; i < b; i++) #define fr(i,a,b) for (int i = b-1; i >= a; i--) #define Min(a,b) a=min(a,b) #define Max(a,b) a=max(a,b) #define pb push_back const int oo = 1e9; string a,b; int n; int solve() { int x[n],y[n]; { int j = 0; f(i,0,n) if (b[i]-'0') j = i; j -= n; f(i,0,n) { if (b[i]-'0') j = i; x[i] = i-j; } j = n; fr(i,0,n) if (b[i]-'0') j = i; j += n; fr(i,0,n) { if (b[i]-'0') j = i; y[i] = j-i; } } int ans = oo; f(d,0,n) { vector<pii> dp; int cost = d; f(i,0,n) if (a[i] != b[(i+d)%n]) { cost++; if (y[i]>d) dp.pb({x[i],y[(i+d)%n]}); } sort(begin(dp),end(dp)); int delta = dp.size()?oo:0; int Y = 0; fr(i,0,dp.size()) { Min(delta,2*(dp[i].first+Y)); Max(Y,dp[i].second); } Min(ans,cost+delta); } return ans; } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); #ifdef LOCAL freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); clock_t start = clock(); #endif cin>>a>>b; n = a.length(); bool contain1 = 0; f(i,0,n) if (b[i]-'0') contain1 = 1; if (a==b) cout << 0 << endl; else if (!contain1) cout << -1 << endl; else { int ans = solve(); reverse(begin(a),end(a)); reverse(begin(b),end(b)); Min(ans,solve()); cout << ans << endl; } #ifdef LOCAL cout << setprecision(12) << (long double)(clock()-start) / CLOCKS_PER_SEC << endl; #endif return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - Shift and Flip |
User | m1sch3f |
Language | C++14 (GCC 5.4.1) |
Score | 1000 |
Code Size | 1571 Byte |
Status | AC |
Exec Time | 124 ms |
Memory | 256 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 | 35 ms | 256 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 | 1 ms | 256 KB |
subtask_1_11.txt | AC | 87 ms | 256 KB |
subtask_1_12.txt | AC | 84 ms | 256 KB |
subtask_1_13.txt | AC | 88 ms | 256 KB |
subtask_1_14.txt | AC | 108 ms | 256 KB |
subtask_1_15.txt | AC | 98 ms | 256 KB |
subtask_1_16.txt | AC | 85 ms | 256 KB |
subtask_1_17.txt | AC | 84 ms | 256 KB |
subtask_1_18.txt | AC | 78 ms | 256 KB |
subtask_1_19.txt | AC | 80 ms | 256 KB |
subtask_1_20.txt | AC | 83 ms | 256 KB |
subtask_1_21.txt | AC | 79 ms | 256 KB |
subtask_1_22.txt | AC | 79 ms | 256 KB |
subtask_1_23.txt | AC | 124 ms | 256 KB |
subtask_1_24.txt | AC | 124 ms | 256 KB |
subtask_1_25.txt | AC | 124 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 | 67 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 | 5 ms | 256 KB |
subtask_1_35.txt | AC | 17 ms | 256 KB |
subtask_1_36.txt | AC | 69 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 | 68 ms | 256 KB |
subtask_1_42.txt | AC | 66 ms | 256 KB |
subtask_1_43.txt | AC | 67 ms | 256 KB |
subtask_1_44.txt | AC | 71 ms | 256 KB |
subtask_1_45.txt | AC | 70 ms | 256 KB |
subtask_1_46.txt | AC | 70 ms | 256 KB |