View Code of Problem 5

#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.


Back to problem 5