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;
}

posted @ 2018-05-12 10:23  Pickupwin  阅读(91)  评论(0)    收藏  举报