50悬关求助

P4683 [IOI2008] Type Printer

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;
}

|