Submission #1544340
Source Code Expand
#include <bits/stdc++.h> #define FOR(i,b,e) for(int i=(b); i <= (e); ++i) #define FORD(i,b,e) for(int i=(b); i >= (e); --i) #define REP(i,n) for(int i=0; i < (n); ++i) #define SIZE(c) (int) (c).size() #define ALL(c) (c).begin(), (c).end() #define PB push_back #define MP make_pair #define ST first #define ND second #define FWD(i,a,b) for (int i=(a); i<(b); ++i) #define BCK(i,a,b) for (int i=(a); i>(b); --i) #define PI 3.14159265358979311600 #define pb push_back #define mp make_pair #define x first #define y second using namespace std; typedef long long ll; typedef pair <int, int> pii; typedef pair <ll, ll> pll; typedef vector < int > VI; typedef vector<ll> VL; typedef long double K; const int inf = 1000 * 1000 * 1000 + 7; const int N = 2005; int n; string a, b; int lf[N], rt[N]; vector<int> g[N]; multiset<int> s; int result = inf; void solve() { REP(shift, n + 1) { REP(i, n + 1) g[i].clear(); s.clear(); int l, r; int here = shift; REP(i, n) { int pos = (i + shift) % n; if (!i) l = r = pos; if (b[pos] == '1') l = pos; while (b[r] != '1') r = (r+1) % n; while (b[l] != '1') l = (l-1+n) % n; lf[i] = l; rt[i] = r; if (r == pos) r = (r+1) % n; if (a[i] == b[pos]) continue; ++here; int sl = (i - l) + (i < l ? n : 0); int sr = (r - i) + (r < i ? n : 0); if (sl <= shift) continue; g[sl - shift].push_back(sr); s.insert(sr); } int best = inf; REP(sh, n + 1) { for (auto& item : g[sh]) s.erase(s.find(item)); int val = s.empty() ? 0 : (*s.begin()); best = min(best, here + sh + val); } result = min(result, best); } } int main() { ios_base::sync_with_stdio(false); cin.tie(0); cin >> a >> b; n = SIZE(a); int check = 0; REP(i, n) if (b[i] == '1') check |= 1; REP(i, n) if (a[i] == '1') check |= 2; if (check == 2) { cout << -1 << '\n'; return 0; } if (!check) { cout << 0 << '\n'; return 0; } REP(i, 2) { solve(); // reverse(a.begin(), a.end()); // reverse(b.begin(), b.end()); } cout << result << '\n'; return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - Shift and Flip |
User | nobik |
Language | C++14 (GCC 5.4.1) |
Score | 0 |
Code Size | 2138 Byte |
Status | WA |
Exec Time | 560 ms |
Memory | 8448 KB |
Judge Result
Set Name | Sample | All | ||||||
---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 0 / 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 | 488 ms | 8448 KB |
subtask_1_06.txt | AC | 1 ms | 256 KB |
subtask_1_07.txt | AC | 104 ms | 384 KB |
subtask_1_08.txt | AC | 1 ms | 256 KB |
subtask_1_09.txt | WA | 1 ms | 256 KB |
subtask_1_10.txt | WA | 2 ms | 384 KB |
subtask_1_11.txt | WA | 458 ms | 4480 KB |
subtask_1_12.txt | AC | 434 ms | 5888 KB |
subtask_1_13.txt | AC | 460 ms | 3712 KB |
subtask_1_14.txt | WA | 442 ms | 384 KB |
subtask_1_15.txt | WA | 468 ms | 384 KB |
subtask_1_16.txt | WA | 505 ms | 512 KB |
subtask_1_17.txt | WA | 502 ms | 512 KB |
subtask_1_18.txt | WA | 541 ms | 512 KB |
subtask_1_19.txt | WA | 556 ms | 640 KB |
subtask_1_20.txt | WA | 527 ms | 896 KB |
subtask_1_21.txt | WA | 379 ms | 384 KB |
subtask_1_22.txt | WA | 381 ms | 384 KB |
subtask_1_23.txt | WA | 560 ms | 512 KB |
subtask_1_24.txt | WA | 560 ms | 512 KB |
subtask_1_25.txt | WA | 560 ms | 512 KB |
subtask_1_26.txt | WA | 2 ms | 384 KB |
subtask_1_27.txt | WA | 5 ms | 384 KB |
subtask_1_28.txt | WA | 21 ms | 384 KB |
subtask_1_29.txt | WA | 99 ms | 1024 KB |
subtask_1_30.txt | WA | 428 ms | 3072 KB |
subtask_1_31.txt | WA | 1 ms | 256 KB |
subtask_1_32.txt | WA | 2 ms | 384 KB |
subtask_1_33.txt | WA | 5 ms | 384 KB |
subtask_1_34.txt | WA | 25 ms | 512 KB |
subtask_1_35.txt | WA | 96 ms | 896 KB |
subtask_1_36.txt | WA | 436 ms | 3200 KB |
subtask_1_37.txt | WA | 2 ms | 384 KB |
subtask_1_38.txt | WA | 5 ms | 384 KB |
subtask_1_39.txt | WA | 24 ms | 512 KB |
subtask_1_40.txt | WA | 101 ms | 1024 KB |
subtask_1_41.txt | WA | 399 ms | 2304 KB |
subtask_1_42.txt | WA | 397 ms | 2432 KB |
subtask_1_43.txt | WA | 423 ms | 2944 KB |
subtask_1_44.txt | WA | 434 ms | 3200 KB |
subtask_1_45.txt | WA | 422 ms | 4864 KB |
subtask_1_46.txt | WA | 426 ms | 3200 KB |