50悬关求助
查看原帖
50悬关求助
853503
Ayk71200楼主2024/3/6 21:48

Wrong Answer.wrong output format Unexpected end of file - int32 expected 所有的wa都是这个 不太懂到底是发生了什么orz 代码如下

#include<bits/stdc++.h>
using namespace std;
string sc,g,ys;
int yc;
struct zds{
int a[26],cnt;
bool bj;
}z[500005];
int cnd=1,bba=0;

void add(string str){
int cur=0;
for(int i=0;str[i];i++){
if(!z[cur].a[str[i]-'a']) z[cur].a[str[i]-'a']=cnd++;
cur=z[cur].a[str[i]-'a'];
}	
z[cur].cnt=1;		
}
void bjzd(string str){
	int cur=0;
	for(int i=0;i<=str.size();i++){
z[cur].bj=1;
cur=z[cur].a[str[i]-'a'];
}}

void dfs(int x){
int w=0;	
if(z[x].cnt){
sc+='P';
bba++;}
if(bba==yc){
printf("%d\n",sc.size());
for(int i=0;sc[i];i++) sc[i+1]? printf("%c\n",sc[i]):printf("%c",sc[i]);
return;
}

for(int i=0;i<26;i++){
	if(z[z[x].a[i]].bj&&z[x].a[i]){
		w=i;
		continue;
	}
	if(z[x].a[i]){
		sc+=char(i+'a');
		dfs(z[x].a[i]);
		sc+='-';		
	}}
	if(w){
	sc+=char(w+'a');
	dfs(z[x].a[w]);
}
}
int main(){
int maxx=0;
scanf("%d",&yc);
getchar();
int tql=yc;
while(tql--){
	cin>>g;
	add(g);
	if(maxx<g.size()){
	maxx=g.size();
	ys=g;
}}
bjzd(ys);
dfs(0);
return 0;
}

2024/3/6 21:48
加载中...