POJ 3617 Best Cow Line

贪心
正反串比一下照小的输出

#include <iostream>
#include <string>

using namespace std;

const int MAXN=2011;

string input;
int N;
int Num[MAXN], Inv[MAXN];
int NL, IL;
int scnt=0;

bool Up(){
    for(int i=NL, j=IL;i>=1 && j>=1;--i, --j){
        if(Num[i]==Inv[j])  continue;
        return Num[i]<Inv[j];
    }
    return NL<IL;
}

void show(int k){
    cout << (char)(k+'A');
    ++scnt;
    if(scnt==80){
        cout << endl;
        scnt=0;
    }
}

int main(){
    ios_base::sync_with_stdio(false);
    
    cin >> N;
    for(int i=1, j=N;i<=N;++i, --j){
        cin >> input;
        Inv[j]=Num[i]=input[0]-'A';
    }
    NL=IL=N;
    
    for(int i=1;i<=N;++i){
        if(Up())    show(Num[NL--]);
        else    show(Inv[IL--]);
    }
    
    cout << endl;
    
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/Pickupwin/p/9027829.html