#include<bits/stdc++.h>
#define pb push_back
#define int long long
using namespace std;
const int N=1e5+10;
int n,cd,cnt;string s[N],cs,t;
int prc,zz;
map<string,int>mp[N];
void pz(int c,int z){
for(auto v:mp[c]){
++zz;
pz(v.second,z+1);
}
}
void pr(int c,int z){
for(auto v:mp[c]){
for(int i=1;i<=z;i++)cout<<" ";
cout<<v.first;++prc;
if(prc<zz)cout<<'\n';
pr(v.second,z+1);
}
}
signed main(){
cin>>n;
for(int i=1;i<=n;i++)cin>>s[i];
for(int i=1;i<=n;i++){
cs=s[i];
cs+="\\";t="";cd=0;
for(int j=0;j<(int)cs.size();j++){
if(cs[j]=='\\'){
if(mp[cd][t]==0)mp[cd][t]=++cnt;
cd=mp[cd][t];
t="";
}else t+=cs[j];
}
}
prc=0;
pz(0,0);
pr(0,0);
return 0;
}
样例过了,0 WA。
自认为是输出输错了