码迷,mamicode.com
首页 > 其他好文 > 详细

poj3617(字典序最小问题)

时间:2015-02-09 18:20:33      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int n,m;
char S[2100],P[2100];

int main()
{
#ifdef xxz
    freopen("in.txt","r",stdin);
#endif // xxz
    ios::sync_with_stdio(false);
    cin.tie(0);
    int sum = 0;
    while(cin>>n)
    {
        for(int i = 0; i < n; i++) cin>>S[i];

        int a = 0, b = n-1,cent = 0;
        while(a <= b)
        {
            bool left = false;//将从左起和由起的字符串比较

            for(int i = 0; a + i <= b; i++)
            {
                if(S[a+i] < S[b-i])
                {
                    left = true;
                    break;
                }
                else if(S[a+i] > S[b-i])
                {
                    left = false;
                    break;
                }
            }

            if(left) P[cent++] = S[a++];
            else P[cent++] = S[b--];
        }
        for(int i = 0; i < n; i++)
        {
            sum += 1;
            cout<<P[i];
            if(sum%80 == 0 && i != n-1) cout<<endl;
        }
    }
    return 0;
}

poj3617(字典序最小问题)

标签:

原文地址:http://blog.csdn.net/u013445530/article/details/43673481

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!