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