天天看点

HDU 3744 - A Runing Game

知识点:简单数学题

关键是建立数学模型。

#include <cstdio>
#include <cstdlib>

struct Player
{
    int x;
    int rank;
};

inline int cmp(const void *a,const void *b)
{
    return ((Player *)b)->rank-((Player *)a)->rank;
}

int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        int n,m;
        scanf("%d%d",&n,&m);
        Player player[n];
        for(int i=0;i<n;i++)
        scanf("%d%d",&player[i].x,&player[i].rank);
        qsort(player,n,sizeof(Player),cmp);
        int lap=0;
        for(int i=1;i<n;i++)
        //如果名次靠前的米数比靠后的小,肯定是套圈了
        if(player[i].x<player[i-1].x) lap++;
        //把总的米数和实际的米数比一下,出结果    
        puts(player[n-1].x+lap*400>m ? "NO" : "YES");      
    }
    return 0;
}
           
HDU 3744 - A Runing Game