POJ3617

需要字典序较小
比较前后两端的字符:如果出现两个字符相同,那么就要顺移一位去比较附近的一位字符。

#include <iostream>
#include<cstdlib>
#include<cstdio>
#include<stack>
#include<algorithm>
#include<cstring>
#include<queue>
#include<cmath>
#include<vector>
#include<map>
#include<set>
using namespace std;


char x[2010];

int main()
{
    int N;
    scanf("%d",&N);
    for(int i=0;i<N;i++){
        cin>>x[i];
    }
    
    int a=0;
    int b=N-1;
    
    int cnt=0;

    while(a<=b){
        bool flag=0;
                for(int i=0;a+i<b;i++){
            if(x[a+i]>x[b-i]){
                flag=1;
                break;
            }
            if(x[a+i]<x[b-i]){
                flag=0;
                break;
            }
        }
        
        if(flag==1){
            putchar(x[b--]);
            cnt++;
        }
        else if (flag==0){
            putchar(x[a++]);
            cnt++;
        }
        
        if(cnt==80){
            printf("\n");
            cnt=0;
        }
        
    }
    
        
   return 0;
}

上一篇:14-Query DSL---范围查询


下一篇:汇编与接口技术课程总结1——汇编程序debug调试