Submission #1551657
Source Code Expand
#include <bits/stdc++.h> using namespace std; #define f first #define s second #define pb push_back #define mp make_pair typedef long long ll; typedef pair<int, int> pii; typedef pair<double, int> pdi; typedef pair<double, double> pdd; const int MOD = 1000000007; const int oo = 1000000001; const int N = 2111; string a , b; int n, x[N]; vector<int>ones; int nxt(int go) { vector<int>::iterator it = lower_bound(ones.begin(), ones.end(), go); if (it == ones.end()) return n - go + ones[0]; return *it - go; } int prv(int go) { vector<int>::iterator it = upper_bound(ones.begin(), ones.end(), go); if (it == ones.begin()) return go + n - ones.back(); return go - *(--it); } int main() { //freopen("input.txt", "r", stdin); cin >> a >> b; n = (int) a.size(); int res = oo; for (int i = 0; i < b.size(); ++i) if (b[i] == '1')ones.push_back(i); if (ones.size() == 0) { int me = 0; for (int i = 0 ; i < a.size(); i++) { if (a[i] == '1')++me; } if (me == 0) { puts("0"); } else { puts("-1"); } return 0; } for (int d = -n ; d <= n-1; ++d) { memset(x, 0, sizeof x); int cnt = 0; for (int i = 0; i < a.size(); ++i) { int newJ = (i + d + n)%n; if (a[i] != b[newJ]) { ++cnt; int nn = nxt(i); int pp = prv(i); x[nn] = max(x[nn], pp); } } if(!cnt){ res = min(res,abs(d)); continue; } int lft = 0; int best = oo, l = -oo, r = -oo; for (int rig = n - 1 ; rig >= 0 ; rig--) { res = min(res, 2 * (max(d,rig) - min(-lft,d)) - abs(d) + cnt); lft = max(lft, x[rig]); } } cout << res << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - Shift and Flip |
User | Hiasat |
Language | C++14 (GCC 5.4.1) |
Score | 1000 |
Code Size | 1667 Byte |
Status | AC |
Exec Time | 741 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 | 741 ms | 256 KB |
subtask_1_06.txt | AC | 1 ms | 256 KB |
subtask_1_07.txt | AC | 36 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 | 435 ms | 256 KB |
subtask_1_12.txt | AC | 481 ms | 256 KB |
subtask_1_13.txt | AC | 426 ms | 256 KB |
subtask_1_14.txt | AC | 131 ms | 256 KB |
subtask_1_15.txt | AC | 138 ms | 256 KB |
subtask_1_16.txt | AC | 141 ms | 256 KB |
subtask_1_17.txt | AC | 146 ms | 256 KB |
subtask_1_18.txt | AC | 156 ms | 256 KB |
subtask_1_19.txt | AC | 179 ms | 256 KB |
subtask_1_20.txt | AC | 207 ms | 256 KB |
subtask_1_21.txt | AC | 90 ms | 256 KB |
subtask_1_22.txt | AC | 89 ms | 256 KB |
subtask_1_23.txt | AC | 130 ms | 256 KB |
subtask_1_24.txt | AC | 130 ms | 256 KB |
subtask_1_25.txt | AC | 129 ms | 256 KB |
subtask_1_26.txt | AC | 2 ms | 256 KB |
subtask_1_27.txt | AC | 3 ms | 256 KB |
subtask_1_28.txt | AC | 10 ms | 256 KB |
subtask_1_29.txt | AC | 63 ms | 256 KB |
subtask_1_30.txt | AC | 317 ms | 256 KB |
subtask_1_31.txt | AC | 1 ms | 256 KB |
subtask_1_32.txt | AC | 2 ms | 256 KB |
subtask_1_33.txt | AC | 3 ms | 256 KB |
subtask_1_34.txt | AC | 13 ms | 256 KB |
subtask_1_35.txt | AC | 47 ms | 256 KB |
subtask_1_36.txt | AC | 284 ms | 256 KB |
subtask_1_37.txt | AC | 2 ms | 256 KB |
subtask_1_38.txt | AC | 3 ms | 256 KB |
subtask_1_39.txt | AC | 12 ms | 256 KB |
subtask_1_40.txt | AC | 57 ms | 256 KB |
subtask_1_41.txt | AC | 233 ms | 256 KB |
subtask_1_42.txt | AC | 230 ms | 256 KB |
subtask_1_43.txt | AC | 278 ms | 256 KB |
subtask_1_44.txt | AC | 280 ms | 256 KB |
subtask_1_45.txt | AC | 283 ms | 256 KB |
subtask_1_46.txt | AC | 275 ms | 256 KB |