/* 题目大意:田忌和国王赛马,田忌每赢一局可以赢得200元,输了则输200,平局无盈亏。 eg: 3---代表每人有几匹马 92 83 71----田忌的马 95 87 74----国王的马 贪心的策略: 一、当田忌最快的马比国王最快的马快时,用田忌最快的马赢国王最快的马。 二、当田忌最快的马比国王最快的马慢时,用田忌最慢的马输给国王最快的马。 三、当田忌最快的马跟国王最快的马一样快时,分情况。 1、当田忌最慢的马比国王最慢的马快,那么用田忌最慢的马赢国王最慢的马 2、当田忌最慢的马比国王最慢的马慢,那么用田忌最慢的马输给国王最快的马 3、当田忌最慢的马跟国王最慢的马相等的时候,用田忌最慢的马跟国王最快的马比 */ # include <stdio.h> int main(void) { int num = 0; int tianJi[10],king[10]; while(scanf("%d", &num) != EOF) { getchar(); //吸收回车符。 int sum = 0; int T = 0,TE = num-1; int K = 0,KE = num-1; if(num == 0) break; for(int i = 0; i < num; i++) { scanf("%d", &tianJi[i]); } for(int j = 0; j < num; j++) { scanf("%d", &king[j]); } while(num--) { if(tianJi[T] > king[K]) { T++; K++; sum = sum + 200; } else if(tianJi[T] < king[K]) { TE--; K++; sum = sum - 200; }else { if(tianJi[TE] > king[KE]) { TE--; KE--; sum = sum + 200; }else if(tianJi[TE] < king[KE]) { TE--; K++; sum = sum - 200; }else { if(tianJi[TE] > king[K]) //田忌的慢马比国王的快马慢 { TE--; K++; sum = sum - 200; }else //田忌的慢马和国王的快马一样快,平局 { TE--; K++; } } } } printf("%d\n", sum); } return 0; }
HDU 1052 Tian Ji -- The Horse Racing
原文地址:http://blog.csdn.net/xu758142858/article/details/44058927