首页 > 其他 > 详细

NYOJ364 田忌赛马

时间:2014-03-15 16:29:58      阅读:365      评论:0      收藏:0      [点我收藏+]

原题链接

思路:先小到大排序,从最大的开始比较,如果An>Bn,则直接赢掉这局;如果An<Bn,则用A1输掉Bn;
如果An==Bn,则比较A1和B1,若相等或A1小,则A1和Bn比,否则A1赢掉B1;

#include <stdio.h>
#include <stdlib.h>
int a[1001], b[1001];

int cmp(const void *a, const void *b){
	return *(int *)a - *(int *)b;
}

int main(){
	int n, count, i;
	int ax, ay, bx, by;
	while(scanf("%d", &n) == 1){
		count = 0;
		for(i = 0; i != n; ++i)
			scanf("%d", &a[i]);
		for(i = 0; i != n; ++i)
			scanf("%d", &b[i]);
		qsort(a, n, sizeof(int), cmp);
		qsort(b, n, sizeof(int), cmp);
		
		ax = bx = count = 0;
		ay = by = n - 1;
		
		while(ax <= ay){
			if(a[ay] > b[by]){
				++count;
				--ay;
				--by;				
			}else if(a[ay] < b[by]){
				--count;
				++ax;
				--by;
			}else{
				if(a[ax] < b[bx]){
					--count;
					++ax;
					--by;
				}else if(a[ax] == b[bx]){
					if(a[ax] < b[by]) --count;
					++ax; --by;
				}else{
					++ax; ++bx;
					++count;
				}
			}
		}
		printf("%d\n", count * 200);
	}
	return 0;
}


NYOJ364 田忌赛马,布布扣,bubuko.com

NYOJ364 田忌赛马

原文:http://blog.csdn.net/chang_mu/article/details/21282591

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!