#include<stdio.h> #include<stdlib.h> typedef struct{ int x; int y; int num; }lanzi; int cmp(const void * a,const void * b) { lanzi *lanzi1=( lanzi *)a; lanzi *lanzi2=( lanzi *)b; int fruit1 = lanzi1->x; int fruit2 = lanzi2->x; if (fruit1==fruit2) { fruit1=lanzi1->y; fruit2=lanzi2->y; if (fruit1==fruit2) return lanzi1->num-lanzi2->num; } return fruit2-fruit1; } int main() { int t; scanf("%d",&t); while(t--) { int n,m; scanf("%d %d",&n,&m); lanzi lz[n]; for(int i=0;i<n;i++) { scanf("%d %d",&lz[i].x,&lz[i].y); lz.num=i+1; } qsort(lz,n,sizeof(lanzi),cmp); for(int i=0;i<m-1;i++) { printf("%d ",lz[i].num); } printf("%d\n",lz[m-1].num); } return 0; } /* Main.c: In function 'main': Main.c:36:6: error: '(lanzi *)&lz' is a pointer; did you mean to use '->'? lz.num=i+1; ^ -> */ |
Double click to view unformatted code.