#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; //保留篮子号 } //排序开始 for(int j=0;j<m;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++){ int index1 = lists[j].index+1; printf("%d ",index1); } int index1 = lists[m-1].index+1; printf("%d",index1); } } |
Double click to view unformatted code.