知識點:簡單數學題
關鍵是建立數學模型。
#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;
}
