View Code of Problem 5

#include<stdio.h>

struct lan {
	int apple;
	int pear;
	int num;
}lanzi[100001];

void swap(struct lan *a, struct lan *b) {
	struct lan temp;
	temp = *a;
	*a = *b;
	*b = temp;

}



void sort(struct lan lanzi[], int n) {
	int i, j;

	for (i = 0;i < n - 1;i++) {
		for (j = 0; j < n - 1 - i; j++) {
			if (lanzi[j].pear < lanzi[j + 1].pear) {
				swap(&lanzi[j], &lanzi[j + 1]);
			}
		}
	}
	for (i = 0;i < n - 1;i++) {
		for (j = 0; j < n - 1 - i; j++) {
			if (lanzi[j].apple < lanzi[j + 1].apple) {
				swap(&lanzi[j], &lanzi[j + 1]);
			}
		}
	}
}


int main() {
	long t, n, m;
	scanf("%ld", &t);
	for (int i = 0;i < t;i++) {
		scanf("%ld%ld", &n, &m);
		for (int j = 0;j < n;j++) {
			scanf("%d%d", &lanzi[j].apple, &lanzi[j].pear);
			lanzi[j].num = j+1;
		}
		sort(lanzi, n);

		for (int k = 0;k < m-1;k++) {
			printf("%d ", lanzi[k].num);

		}
		printf("%d", lanzi[m - 1].num);
		printf("\n");
	}
	
}

Double click to view unformatted code.


Back to problem 5