沙茶贪心,然而脑残怒WA了一发…
AC code:
#include <cstdio>
#include <cstring>
const int N=30010;
const int MD=80;
int n,L,R,cnt;
char s[N],t1[N],t2[N];
int main(){
scanf("%d\n",&n);
L=1;R=n;
for(int i=1;i<=n;i++) scanf("%c\n",&s[i]);
while(L<=R){
if(s[L]<s[R]){
printf("%c",s[L++]);
if(!(++cnt%MD)) printf("\n");
}
else if(s[R]<s[L]){
printf("%c",s[R--]);
if(!(++cnt%MD)) printf("\n");
}
else{
int i,j;
bool flag=0;
for(i=L,j=R;i<j&&s[i]==s[j];i++,j--) ;
if(s[i]<s[j]) flag=1;
if(flag){
for(i=L;i<=n&&s[i]==s[L];i++){
printf("%c",s[i]);
if(!(++cnt%MD)) printf("\n");
}
L=i;
}
else{
for(i=R;i>=1&&s[i]==s[R];i--){
printf("%c",s[i]);
if(!(++cnt%MD)) printf("\n");
}
R=i;
}
}
}
return 0;
}