天天看點

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