View Code of Problem 5

#include<stdio.h>
typedef struct{
	int a;
	int b;
	int index;
}s;
int main(){
	int T;
	int n; //总篮子 
	int m; //jlh选择的 
	scanf("%d",&T);
	for(int i=0;i<T;i++){
		scanf("%d %d",&n,&m);
		s lists[100000];
		for(int j=0;j<n;j++){
			int a,b;
			scanf("%d %d",&a,&b);
			lists[j].a=a;
			lists[j].b=b;
			lists[j].index=j+1;  //保留篮子号 
		}
		//排序开始
		for(int j=0;j<n;j++){
			for(int k=n-1;k>j;k--){
				if(lists[k].a>lists[k-1].a){
					s temp;
					temp=lists[k];
					lists[k]=lists[k-1];
					lists[k-1]=temp;
				}else if (lists[k].a==lists[k-1].a){
					if(lists[k].b>lists[k-1].b){
						s temp;
						temp=lists[k];
						lists[k]=lists[k-1];
						lists[k-1]=temp;
					}else if(lists[k].b==lists[k-1].b){
						if(lists[k].index<lists[k-1].index){
							s temp;
							temp=lists[k];
							lists[k]=lists[k-1];
							lists[k-1]=temp;
						}
					}
				}
			}
		} 
		//排序结束 
		for(int j=0;j<m-1;j++){
			printf("%d ",lists[j].index);
		}
		printf("%d\n",lists[m-1].index);
	}
}

Double click to view unformatted code.


Back to problem 5