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
AC × 4
AC × 18
WA × 36
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