1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 using namespace std; 6 7 const int maxn=500005; 8 string str[maxn]; 9 int flag[maxn]; 10 11 int main() 12 { 13 int n; 14 int i,j; 15 scanf("%d",&n); 16 getchar(); 17 for(i=0;i<n;i++) 18 { 19 getline(cin,str[i]); 20 } 21 22 flag[n-1]=str[n-1].size(); 23 24 for(i=n-2;i>-1;i--) 25 { 26 flag[i]=flag[i+1]; 27 for(j=1;j<flag[i+1];j++) 28 { 29 if(str[i+1][j]>str[i][j]) 30 { 31 flag[i]=str[i].size(); 32 break; 33 } 34 35 else if(str[i+1][j]<str[i][j]) 36 { 37 flag[i]=j; 38 break; 39 } 40 }
} 52 53 for(i=0;i<n;i++) 54 { 55 for(j=0;j<flag[i];j++) 56 { 57 cout<<str[i][j]; 58 } 59 cout<<endl; 60 } 61 62 return 0; 63 64 }