Submission #1543150


Source Code Expand

#include<stdio.h>
#include<vector>
#include<algorithm>
#include<string>
#include<iostream>
using namespace std;
int las[20000],rlas[20000];
typedef pair<int,int>pii;
int solve(string sa,string sb)
{
	int num=sa.size();
	sa=sa+sa+sa+sa+sa,sb=sb+sb+sb+sb+sb;
	for(int i=1;i<sb.size();i++)
	{
		las[i]=las[i-1];
		if(sb[i]=='1')las[i]=i;
	}
	for(int i=sb.size()-2;i>=0;i--)
	{
		rlas[i]=rlas[i+1];
		if(sb[i]=='1')rlas[i]=i;
	}
	int mini=1000000000;
	for(int p=0;p<num;p++)
	{
		vector<pii>v;
		int cnt=0;
		//printf("- %d\n",p);
		for(int i=num+num;i<num+num+num;i++)
		{
			if(sa[i]==sb[i+p])continue;
			pii z=make_pair(0,0);
			if(las[i+p]<i)z.first=i-las[i+p];
			if(rlas[i]>i+p)z.second=rlas[i]-(i+p);
			v.push_back(z);
			cnt++;
			//printf("%d %d %d\n",i-num-num,z.first,z.second);
		}
		sort(v.begin(),v.end());
		reverse(v.begin(),v.end());
		int now=0;
		int mi=1000000000;
		for(int i=0;i<v.size();i++)
		{
			mi=min(mi,(v[i].first+now)*2+cnt+p);
			now=max(now,v[i].second);
		}
		mi=min(mi,now*2+cnt+p);
		mi=min(mi,num+cnt+p);
		//printf(" %d\n",mi);
		mini=min(mini,mi);
	}
	return mini;
}
int main()
{
	string sa,sb;
	cin>>sa>>sb;
	if(sa==sb)
	{
		printf("0\n");
		return 0;
	}
	int cnt=0;
	for(int i=0;i<sb.size();i++)if(sb[i]=='1')cnt++;
	if(cnt==0)
	{
		printf("-1\n");
		return 0;
	}
	int ans1=solve(sa,sb);
	reverse(sa.begin(),sa.end());
	reverse(sb.begin(),sb.end());
	int ans2=solve(sa,sb);
	printf("%d\n",min(ans1,ans2));
}

Submission Info

Submission Time
Task D - Shift and Flip
User DEGwer
Language C++14 (GCC 5.4.1)
Score 1000
Code Size 1521 Byte
Status AC
Exec Time 314 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 189 ms 384 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 2 ms 256 KB
subtask_1_11.txt AC 127 ms 384 KB
subtask_1_12.txt AC 144 ms 384 KB
subtask_1_13.txt AC 127 ms 384 KB
subtask_1_14.txt AC 136 ms 384 KB
subtask_1_15.txt AC 133 ms 384 KB
subtask_1_16.txt AC 126 ms 384 KB
subtask_1_17.txt AC 121 ms 384 KB
subtask_1_18.txt AC 120 ms 384 KB
subtask_1_19.txt AC 127 ms 384 KB
subtask_1_20.txt AC 121 ms 384 KB
subtask_1_21.txt AC 125 ms 384 KB
subtask_1_22.txt AC 123 ms 384 KB
subtask_1_23.txt AC 314 ms 384 KB
subtask_1_24.txt AC 314 ms 384 KB
subtask_1_25.txt AC 314 ms 384 KB
subtask_1_26.txt AC 1 ms 256 KB
subtask_1_27.txt AC 2 ms 256 KB
subtask_1_28.txt AC 6 ms 256 KB
subtask_1_29.txt AC 25 ms 256 KB
subtask_1_30.txt AC 107 ms 384 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 7 ms 256 KB
subtask_1_35.txt AC 24 ms 256 KB
subtask_1_36.txt AC 107 ms 384 KB
subtask_1_37.txt AC 1 ms 256 KB
subtask_1_38.txt AC 2 ms 256 KB
subtask_1_39.txt AC 7 ms 256 KB
subtask_1_40.txt AC 26 ms 384 KB
subtask_1_41.txt AC 97 ms 384 KB
subtask_1_42.txt AC 96 ms 384 KB
subtask_1_43.txt AC 103 ms 384 KB
subtask_1_44.txt AC 106 ms 384 KB
subtask_1_45.txt AC 106 ms 384 KB
subtask_1_46.txt AC 105 ms 384 KB