hdoj 1052 Tian Ji -- The Horse Racing(第一次接触贪心)

来源:互联网 发布:idea打印不出sql 编辑:程序博客网 时间:2024/06/01 20:09

思路:

先将两个人的马进行排序;

先拿田和王最慢的马进行比较

1.如果田>王,直接田赢下一局。

2.如果小于,用田的最慢马,输给王。

3.如果等于,比较田和王的最快马

3.1如田的最快马>王直接田赢下一局

3.2如果田的马比王的慢,则用田的最慢马输一局

3.3如果田的马跟王一样,则只剩两种情况

3.3.1田的最慢马跟王的最快马一样快,不输不赢

3.3.2田的最慢马比王的慢,输一局

#include <stdio.h>#include <stdlib.h>#include <string.h>/* run this program using the console pauser or add your own getch, system("pause") or input loop */#define  p 3.1415927void sort(int x,int b[]) //从小到大冒泡 {int i,j,temp;for(i=0;i<x;i++){for(j=0;j<x-i-1;j++){if(b[j]>b[j+1]){temp=b[j];b[j]=b[j+1];b[j+1]=temp; }}}}int main(int argc, char *argv[]) {int a[1100];int b[1100];int n;long sum;int i;int j;int aslow,afast;int bslow,bfast;int awin,bwin;while(scanf("%d",&n)&& n!=0){for(i=0;i<n;i++)scanf("%d",&a[i]);for(i=0;i<n;i++)scanf("%d",&b[i]);sort(n,a);sort(n,b);aslow=bslow=0;afast=bfast=n-1;awin=bwin=0;for(i=0;i<n;i++){if(a[aslow]>b[bslow]){awin++;aslow++;bslow++;}else if(a[aslow]<b[bslow]){bwin++;aslow++;bfast--;}else{if(a[afast]>b[bfast]){awin++;afast--;bfast--;}else if(a[afast]<b[bfast]){bwin++;aslow++;bfast--;}else{if(a[aslow]<b[bfast]){bwin++;aslow++;bfast--;}else{aslow++;bfast--;}}}}printf("%d\n",200*(awin-bwin)); }return 0;}





原创粉丝点击