poj2287 田忌赛马

来源:互联网 发布:知学学院课程 编辑:程序博客网 时间:2024/06/08 13:30
题意:田忌和齐王各有n匹马,想办法尽可能让田忌赢更多的钱,赢一场200,输一场-200,平不扣。贪心思想:先拿田忌最好的马跟齐王最好的马比:         如果快则赢下,如果慢则用最慢的马跟齐王最快的马比         如果一样快则比较二者最慢的马:         如果田忌的慢马比齐王的慢马快则赢下         反之就用田忌的这个慢马跟齐王最快的马比(反正这匹马输定了,那就让它输的有最价值)
import java.util.Arrays;import java.util.Scanner;public class Main {    /**     * @param args     */    static int a[] = new int[2000];    static int b[] = new int[2000];    static Scanner cin = new Scanner(System.in);    public static void solve() {        while(cin.hasNext())        {            int n = cin.nextInt();            if(n == 0)break;            for(int i = 0 ; i < n ; i++)                a[i] = cin.nextInt();            for(int i = 0 ; i < n ; i++)                b[i] = cin.nextInt();            Arrays.sort(a,0,n);            Arrays.sort(b,0,n);            int ans = 0, al = 0,ar = n-1,bl = 0,br = n-1,t = 0;            while( al <= ar)            {                if( a[ar] > b[br] )                {                    ans++;                    ar--;                    br--;                }                else if( a[ar] < b[br] )                {                    al++;                    br--;                    ans--;                }                else                {                    if( a[al] > b[bl] )                    {                        ans++;                        al++;                        bl++;                    }                    else                    {                        if( a[al] < b[br] ) ans--;                        al++;                        br--;                    }                }            }            System.out.println( ans*200 );        }    }    public static void main(String[] args) {        // TODO Auto-generated method stub            solve();    }}
0 0
原创粉丝点击