Submission #1765688


Source Code Expand

#include <bits/stdc++.h>
#define rep(i,n) for(int i=0;i<(int)(n);i++)
#define rep1(i,n) for(int i=1;i<=(int)(n);i++)
#define all(c) c.begin(),c.end()
#define pb push_back
#define fs first
#define sc second
#define show(x) cout << #x << " = " << x << endl
#define chmin(x,y) x=min(x,y)
#define chmax(x,y) x=max(x,y)
using namespace std;
template<class S,class T> ostream& operator<<(ostream& o,const pair<S,T> &p){return o<<"("<<p.fs<<","<<p.sc<<")";}
template<class T> ostream& operator<<(ostream& o,const vector<T> &vc){o<<"sz = "<<vc.size()<<endl<<"[";for(const T& v:vc) o<<v<<",";o<<"]";return o;}
 
string sa,sb;
const int MN = 2010;
int a[MN],b[MN];
int N;
 
int needl[MN],needr[MN];
 
int calc(int L,int R,int i){
	chmax(L,i);
	int res = R*2 + L + (L-i);
	return res;
}
 
int solve(){
	rep(i,N){
		for(int t=0;;t++){
			int j = (i-t+N)%N;
			if(b[j]){
				needl[i] = t;
				break;
			}
		}
	}
	rep(i,N){
		for(int t=0;;t++){
			int j = (i+t)%N;
			if(b[j]){
				needr[i] = t;
				break;
			}
		}
	}
	int res = 1e9;
	rep(i,N){
		vector<int> difs;
		rep(x,N){
			if(a[(i+x)%N]!=b[x]) difs.pb((i+x)%N);
		}
		using P = pair<int,int>;
		vector<P> vp;
		for(int d:difs){
			if(needl[d]<=i) continue;
			vp.pb(P(needl[d],needr[d]));
		}
		sort(all(vp),greater<P>());
 
		int tmp = 1e9;
		int L = N-1, R = 0;
 
		for(P p:vp){
			L = p.fs;
			chmin(tmp,calc(L,R,i));
			chmax(R,p.sc);
		}
		L = 0;
		chmin(tmp,calc(L,R,i));
 
		if(vp.empty()) tmp = i;
 
		tmp += difs.size();
 
		chmin(res,tmp);
	}
	return res;
}
 
int main(){
	cin>>sa>>sb;
	N = sa.size();
	rep(i,N){
		a[i] = sa[i]=='1';
		b[i] = sb[i]=='1';
	}
	if(sb == string(N,'0')){
		if(sa == string(N,'0')) puts("0");
		else puts("-1");
		return 0;
	}
	int ans = 1e9;
	rep(tt,2){
		chmin(ans,solve());
		reverse(a,a+N);
		reverse(b,b+N);
	}
	cout<<ans<<endl;
}

Submission Info

Submission Time
Task D - Shift and Flip
User sigma425
Language C++14 (GCC 5.4.1)
Score 1000
Code Size 1916 Byte
Status AC
Exec Time 166 ms
Memory 384 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 1000 / 1000
Status
AC × 4
AC × 54
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 42 ms 256 KB
subtask_1_06.txt AC 1 ms 256 KB
subtask_1_07.txt AC 27 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 90 ms 256 KB
subtask_1_12.txt AC 88 ms 256 KB
subtask_1_13.txt AC 90 ms 256 KB
subtask_1_14.txt AC 166 ms 256 KB
subtask_1_15.txt AC 108 ms 256 KB
subtask_1_16.txt AC 77 ms 256 KB
subtask_1_17.txt AC 76 ms 256 KB
subtask_1_18.txt AC 68 ms 256 KB
subtask_1_19.txt AC 76 ms 256 KB
subtask_1_20.txt AC 83 ms 256 KB
subtask_1_21.txt AC 133 ms 256 KB
subtask_1_22.txt AC 133 ms 256 KB
subtask_1_23.txt AC 141 ms 256 KB
subtask_1_24.txt AC 141 ms 384 KB
subtask_1_25.txt AC 141 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 64 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 6 ms 256 KB
subtask_1_35.txt AC 17 ms 256 KB
subtask_1_36.txt AC 67 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 64 ms 256 KB
subtask_1_42.txt AC 63 ms 256 KB
subtask_1_43.txt AC 65 ms 256 KB
subtask_1_44.txt AC 69 ms 256 KB
subtask_1_45.txt AC 66 ms 384 KB
subtask_1_46.txt AC 67 ms 256 KB