提出 #2011543


ソースコード 拡げる

#include<bits/stdc++.h>
#define L long long
#define vi vector<int>
#define pb push_back
#define pi pair<int,int>
#define pii pair<pi,int>
#define aa first
#define bb second
#define xx aa.aa
#define yy aa.bb
#define zz bb
#define mp make_pair
#define mpp(a,b,c) mp(mp(a,b),c)
using namespace std;
int n,s[2010],l[2010],r[2010],p=1e9;
char a[2010],b[2010];
pi x[2010];
inline int calc(int i,int l,int r)
{
//	cout<<l<<" "<<r<<"\n";
	l=min(l,i);
	r=max(r,i);
	return 2*(r-l)-abs(i);
}
int main()
{
	//freopen(".in","r",stdin);
	//freopen(".out","w",stdout);
	int i,j,k,w,u,o;
	scanf("%s%s",&a,&b);
	n=strlen(a);
	for(i=0;i<n;i++)
	  s[i]=(i?s[i-1]:0)+b[i]-'0';
	if(!s[n-1])
	  {
	   for(i=0;i<n;i++)
	     if(a[i]=='1')
	       break;
	   if(i<n)
	     printf("-1\n");
	   else
	     printf("0\n");
	   return 0;
	  }
	for(i=0;i<n;i++)
	  {
	   k=min(i,n-i)+n;
	   for(j=0;j<n;j++)
	     if(a[j]!=b[(i+j)%n])
	       k++;
	   p=min(p,k);
	  }
	for(i=0;i<n;i++)
	  {
	   for(j=0;b[(i+j)%n]=='0';j++);
	   r[i]=j;
	   for(j=0;b[(i+j+n)%n]=='0';j--);
	   l[i]=j;
	   //cout<<l[i]<<" "<<r[i]<<"!!!\n";
	  }
	for(i=-(n-1);i<n;i++)
	  {
	   k=0;
	   w=0;
	   for(j=0;j<n;j++)
	     if(a[j]!=b[(i+j+n)%n])
	       {
	        k++;
	        if(i>l[j] && i<r[j])
	          x[++w]=mp(l[j],r[j]);
		   }
	   sort(x+1,x+w+1);
	   o=1e9;
	   u=0;
	   x[w+1].aa=0;
	   for(j=0;j<=w;j++)
	     {
		  if(j)
		    u=max(u,x[j].bb);
		  o=min(o,calc(i,x[j+1].aa,u));
		 }
	   p=min(p,k+o);
	   //cout<<i<<" "<<k<<" "<<o<<"-----------\n";
	  }
	printf("%d\n",p);
	return 0;
}

提出情報

提出日時
問題 D - Shift and Flip
ユーザ fateice
言語 C++14 (GCC 5.4.1)
得点 1000
コード長 1641 Byte
結果 AC
実行時間 161 ms
メモリ 256 KiB

コンパイルエラー

./Main.cpp: In function ‘int main()’:
./Main.cpp:30:20: warning: format ‘%s’ expects argument of type ‘char*’, but argument 2 has type ‘char (*)[2010]’ [-Wformat=]
  scanf("%s%s",&a,&b);
                    ^
./Main.cpp:30:20: warning: format ‘%s’ expects argument of type ‘char*’, but argument 3 has type ‘char (*)[2010]’ [-Wformat=]
./Main.cpp:30:21: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  scanf("%s%s",&a,&b);
                     ^

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 1000 / 1000
結果
AC × 4
AC × 54
セット名 テストケース
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
ケース名 結果 実行時間 メモリ
sample_01.txt AC 1 ms 256 KiB
sample_02.txt AC 1 ms 256 KiB
sample_03.txt AC 1 ms 256 KiB
sample_04.txt AC 1 ms 256 KiB
subtask_1_01.txt AC 1 ms 256 KiB
subtask_1_02.txt AC 1 ms 256 KiB
subtask_1_03.txt AC 1 ms 256 KiB
subtask_1_04.txt AC 1 ms 256 KiB
subtask_1_05.txt AC 43 ms 256 KiB
subtask_1_06.txt AC 1 ms 256 KiB
subtask_1_07.txt AC 40 ms 256 KiB
subtask_1_08.txt AC 1 ms 256 KiB
subtask_1_09.txt AC 1 ms 256 KiB
subtask_1_10.txt AC 1 ms 256 KiB
subtask_1_11.txt AC 94 ms 256 KiB
subtask_1_12.txt AC 91 ms 256 KiB
subtask_1_13.txt AC 94 ms 256 KiB
subtask_1_14.txt AC 161 ms 256 KiB
subtask_1_15.txt AC 114 ms 256 KiB
subtask_1_16.txt AC 104 ms 256 KiB
subtask_1_17.txt AC 103 ms 256 KiB
subtask_1_18.txt AC 98 ms 256 KiB
subtask_1_19.txt AC 96 ms 256 KiB
subtask_1_20.txt AC 95 ms 256 KiB
subtask_1_21.txt AC 102 ms 256 KiB
subtask_1_22.txt AC 102 ms 256 KiB
subtask_1_23.txt AC 106 ms 256 KiB
subtask_1_24.txt AC 106 ms 256 KiB
subtask_1_25.txt AC 106 ms 256 KiB
subtask_1_26.txt AC 1 ms 256 KiB
subtask_1_27.txt AC 2 ms 256 KiB
subtask_1_28.txt AC 6 ms 256 KiB
subtask_1_29.txt AC 22 ms 256 KiB
subtask_1_30.txt AC 83 ms 256 KiB
subtask_1_31.txt AC 1 ms 256 KiB
subtask_1_32.txt AC 1 ms 256 KiB
subtask_1_33.txt AC 2 ms 256 KiB
subtask_1_34.txt AC 6 ms 256 KiB
subtask_1_35.txt AC 22 ms 256 KiB
subtask_1_36.txt AC 87 ms 256 KiB
subtask_1_37.txt AC 1 ms 256 KiB
subtask_1_38.txt AC 2 ms 256 KiB
subtask_1_39.txt AC 6 ms 256 KiB
subtask_1_40.txt AC 22 ms 256 KiB
subtask_1_41.txt AC 84 ms 256 KiB
subtask_1_42.txt AC 83 ms 256 KiB
subtask_1_43.txt AC 84 ms 256 KiB
subtask_1_44.txt AC 89 ms 256 KiB
subtask_1_45.txt AC 87 ms 256 KiB
subtask_1_46.txt AC 87 ms 256 KiB