POJ 3617 Best Cow Line(贪心)
2015-12-22 13:41
501 查看
Language: Default Best Cow Line
FJ is about to take his N (1 ≤ N ≤ 2,000) cows to the annual"Farmer of the Year" competition. In this contest every farmer arranges his cows in a line and herds them past the judges. The contest organizers adopted a new registration scheme this year: simply register the initial letter of every cow in the order they will appear (i.e., If FJ takes Bessie, Sylvia, and Dora in that order he just registers BSD). After the registration phase ends, every group is judged in increasing lexicographic order according to the string of the initials of the cows' names. FJ is very busy this year and has to hurry back to his farm, so he wants to be judged as early as possible. He decides to rearrange his cows, who have already lined up, before registering them. FJ marks a location for a new line of the competing cows. He then proceeds to marshal the cows from the old line to the new one by repeatedly sending either the first or last cow in the (remainder of the) original line to the end of the new line. When he's finished, FJ takes his cows for registration in this new order. Given the initial order of his cows, determine the least lexicographic string of initials he can make this way. Input * Line 1: A single integer: N * Lines 2..N+1: Line i+1 contains a single initial ('A'..'Z') of the cow in the ith position in the original line Output The least lexicographic string he can make. Every line (except perhaps the last one) contains the initials of 80 cows ('A'..'Z') in the new line. Sample Input 6 A C D B C B Sample Output ABCBCD Source USACO 2007 November Silver |
const int N = 2010;
int main() {
char str
;
int n;
scanf("%d", &n);
for (int i = 0; i < n; ++i)
scanf("%s", str + i);
int l = 0, r = n - 1;
int cnt = 0;
while (l <= r) {
bool flag = false;
for (int i = 0; l + i < r - i; ++i) {
if (str[l + i] < str[r - i]) {
flag = true;
break;
}
else if (str[l + i] > str[r - i]) {
flag = false;
break;
}
}
if (flag) putchar(str[l++]);
else putchar(str[r--]);
if ((++cnt) % 80 == 0) {
puts("");
cnt = 0;
}
}
return 0;
}
相关文章推荐
- Myeclipse远程调试Windows下的Tomcat
- 定时监视redis,自动重启redsi服务
- easyui 文本框 显示提示信息data-options="prompt:'格式:水箱支架-京东汽配店铺-图集(大图/图集6)'"
- 对象作为返回值类型&&链式编程
- 2015年大二上-数据结构-树和二叉树-1-(1)二叉树算法库
- 陪喆度过漫长岁月
- 欢迎使用CSDN-markdown编辑器
- 使用mysql库连接mysql
- 第五章【回溯法】最大团问题和图的m着色问题
- 两道关于数据处理方面的面试题
- Android Fragment的使用 《第一行代码》
- 【Web】JavaScript获取HTML DOM节点元素的方法的总结
- Extjs4.10Model模型具体解释
- Linux新建用户 useradd&groupadd
- 前端js判断访问站点设备(手机还是PC)实现自动跳转代码
- hdu 1879 继续畅通工程 最小生成树
- Top K问题
- centOS 6.5下升级mysql,从5.1升级到5.7
- J2SE学习小结一
- 【Fiddler】抓手机请求包或其他请求包