奇怪思路,但WA了
查看原帖
奇怪思路,但WA了
734103
_ICX楼主2024/8/2 19:15

RT WA #11(我知道数据随机,但每次都在这WA)

Wrong Answer.wrong answer 1st words differ - expected: 

'111111011011111111111111111111...1101111111011110011111111111111', 
found: 
'101110111111111111111111111101...1101110111011111011111111110110'

思路是把所有0的位置扔进a数组,在读入的字符串s中扫一遍

sans为答案字符串qwq

st 是temp string

#include<bits/stdc++.h>
using namespace std;
const  int N=1e6+10;
int n,a[N];
char s[N],sans[N],st[N];

int main(){
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	cin>>n>>s;
	int cnt=0,fir,len=strlen(s);
	for(int i=0;i<len;i++){
        sans[i]=s[i];
		if(s[i]=='0'){
			if(cnt==0)fir=i;
			a[++cnt]=i-fir;
		}
	}
	int c,ans=INT_MIN;
	for(int i=0;i<len;i++){
		c=0;
        for(int i=0;i<len;i++)st[i]=s[i];
		for(int j=1;j<=cnt;j++){
			if(s[i+a[j]]=='1')c++,st[fir+a[j]]='1';
		}
//		cout<<st<<'\n';
		if(c>ans){
			ans=c;
			for(int i=0;i<len;i++)sans[i]=st[i];
		}
	}
	int pos=0,slen=strlen(sans);
	while(sans[pos]=='0'){
		pos++;
		if(pos==slen){
			cout<<0;
			return 0;
		}
	}
	for(int i=pos;i<slen;i++)cout<<sans[i];
	return 0;
}

2024/8/2 19:15
加载中...