蒟蒻在线求助,报答关注,80分TLE#2#9
查看原帖
蒟蒻在线求助,报答关注,80分TLE#2#9
516441
gentleman1楼主2022/11/6 11:23
#include<iostream>
#include<cstdio>
using namespace std;
int n;string s;
bool check(string x){
	int sum=0;
	for(int i=0;i<x.size();i++)
		if(x[i]=='1')sum+=(i+1);
	if(sum%(n+1)==0)return true;
	else return false;
}
void function(string x){
	int t;
	for(int i=0;i<x.size();i++){
		string g=x;g.erase(i,1);
		if(check(g)){t=i;cout<<g<<endl;return;}
	}
	cout<<-1<<endl;
}
void work(string x){
	for(int i=0;i<x.size();i++){
		string g=x;g.insert(g.begin()+i,'0');
		//cout<<g<<endl;
		if(check(g)){cout<<g<<endl;return;}//
		g=x;g.insert(g.begin()+i,'1');
		//cout<<g<<endl;
		if(check(g)){cout<<g<<endl;return;}//
	}
	string g=x;g+="0";
	if(check(g)){cout<<g<<endl;return;}
	g=x;g+="1";
	if(check(g)){cout<<g<<endl;return;}
	cout<<-1<<endl;
}
void chuli(string x){
	int sum=0;
	for(int i=0;i<x.size();i++){
		if(x[i]=='1')sum+=(i+1);
	}
	for(int i=0;i<s.size();i++){
		if(x[i]=='1'&&(sum-(i+1))%(n+1)==0){
			x[i]='0';cout<<x<<endl;return;
		}
	}
	cout<<-1<<endl;
}
int main(){
	cin>>n;
	while(cin>>s){
		if(s.size()>n){
			function(s);
			continue;
		}/**/
		if(s.size()<n){
			work(s);
			continue;
			
		}
		int sum=0;
		for(int i=0;i<s.size();i++)
			if(s[i]=='1')sum+=(i+1);
			
		if(sum%(n+1)==0)cout<<s<<endl;
		else{
			chuli(s);
			continue;
		}/**/
	}
	return 0;
}
2022/11/6 11:23
加载中...