题解 P2694 【接金币】

ShineEternal

2020-01-16 20:11:30

Solution

[link](https://blog.csdn.net/kkkksc03/article/details/104010532) ## solution: 排序,相当于贪心的思路,因为题目是问能不能都接完,所以从快到慢考虑。 每次别忘了计算接A的同时B已经下落的时间 ```cpp #include<cstdio> #include<algorithm> using namespace std; struct ben { int x,y; }a[105]; int cmp(const ben &a,const ben &b) { return a.y<b.y; } int abs(int x) { if(x<0)return -x; return x; } int main() { int T,n; scanf("%d",&T); while(T--) { scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d%d",&a[i].x,&a[i].y); } sort(a+1,a+n+1,cmp); int tmp=0,tag=0; int flag=0; for(int i=1;i<=n;i++) { if(a[i].y-tag>=abs(a[i].x-tmp)) { tag+=a[i].y; tmp=a[i].x; //printf("tmp=%d\n",tmp); } else { printf("Notabletocatch\n"); flag=1; break; } } if(flag==0) { printf("Abletocatch\n"); } } return 0; } ```