Best Cow Line FZU

来源:互联网 发布:php帮助手册下载 编辑:程序博客网 时间:2024/05/16 04:37

原题:FZU - 1546


题目大意:

给出一个序列q和一个空的序列m,可以从q的头部或者尾部取出一个字符加入到m的尾部,要求新的序列m字典序最小


简单的贪心就行,用两个标记向中间移动,谁小就把谁加入到新序列中


#include <iostream>#include <cstdio>using namespace std;char s[2010];char m[2010];int n;int judge(int l,int r) {    if(s[l]<s[r])        return 0;    else if(s[l]>s[r])        return 1;    if(r-l<=2)        return 0;    return judge(l+1,r-1);}int main() {    int i;    while(~scanf("%d",&n)) {        for(i=0; i<n; i++) {            getchar();            scanf("%c",&s[i]);        }        int l=0,r=n-1,t=0;        while(t!=n) {            int temp=judge(l,r);            if(temp) {                m[t++]=s[r];                r--;            } else {                m[t++]=s[l];                l++;            }            printf("%c",m[t-1]);            if(t%80==0)printf("\n");        }        if(t%80)printf("\n");    }    return 0;}


0 0
原创粉丝点击