Ayk71200 @ 2024-03-06 21:48:37
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;
}