题目链接
http://poj.org/problem?id=3617
简单贪心题.每次贪开头和结尾最小的字符即可
#include <iostream>
using namespace std;
char s[2111];
int n;
void solve()
{
int a=0,b=n-1,i,cnt=0;
while(a<=b)
{
bool flag=false;
for(i=0;a+i<=b;i++){
if(s[a+i]<s[b-i]){
flag=true;
break;
}
else if(s[a+i]>s[b-i]){
flag=false;
break;
}
}
if(flag)
{
cout<<s[a++];cnt++;
if(cnt%80==0)
{cout<<endl;}
}
else
{
cout<<s[b--];
cnt++;
if(cnt%80==0)
{cout<<endl;}
}
}
if(cnt%80)
cout<<endl;
}
int main()
{
int i;
while(cin>>n)
{
for(i=0;i<n;i++)
cin>>s[i];
solve();
}
return 0;
}