题目:https://vjudge.net/problem/CodeForces-1294B#author=tjrac6018203068
分析:用结构体存储每个包裹的坐标,然后按照横、纵坐标从小到大排序,然后遍历一遍,因为要字典序最小,故优先向右走,遍历过程中更新robot坐标,如果当前包裹的纵坐标比robot小,因为只能向上或者向右走,说明无法收集所有包裹。
1 #include <stdio.h> 2 #include <stdlib.h> 3 struct node{ 4 int x; 5 int y; 6 }s[1010]; 7 int cmp(const void*a,const void*b){ 8 if((*(node*)a).x!=(*(node*)b).x) 9 return (*(node*)a).x-(*(node*)b).x; 10 else return (*(node*)a).y-(*(node*)b).y; 11 } 12 int main(void){ 13 int t; 14 scanf("%d",&t); 15 while(t--){ 16 int n; 17 scanf("%d",&n); 18 for(int i=0;i<n;i++){ 19 scanf("%d %d",&s[i].x,&s[i].y); 20 } 21 qsort(s,n,sizeof(node),cmp); 22 int h=0; 23 char c[1000000]={'