nyoj-240-小明的调查统计(二)
1 #include<stdio.h> 2 #include<algorithm> 3 #include<functional> 4 #include<string.h> 5 #include<math.h> 6 using namespace std; 7 struct mark 8 { 9 int Mark,cl,gre; 10 }mark1[100010]; 11 bool cmp(mark a,mark b) 12 { 13 if(a.Mark!=b.Mark) return a.Mark>b.Mark; 14 if(a.cl!=b.cl) return a.cl<b.cl; 15 if(a.gre!=b.gre) return a.gre<b.gre; 16 } 17 int main() 18 { 19 int n,t,m,i,j,flag=0; 20 scanf("%d%d",&t,&m); 21 for(j=0;j<t;j++) 22 { 23 scanf("%d",&n); 24 for(i=0;i<n;i++) 25 { 26 scanf("%d",&mark1[flag].Mark); 27 mark1[flag].cl=j+1; 28 mark1[flag].gre=i+1; 29 flag++; 30 } 31 } 32 sort(mark1,mark1+flag,cmp); 33 /*for(i=0;i<flag;i++) 34 printf("%d %d %d\n",mark1[i].Mark,mark1[i].cl,mark1[i].gre);*/ 35 int f; 36 for(i=0;i<m;i++) 37 { 38 scanf("%d",&f); 39 if(f==1) 40 printf("%d %d\n",mark1[0].cl,mark1[0].gre); 41 int num=1; 42 for(j=1;j<flag;j++) 43 { 44 if(mark1[j].Mark!=mark1[j-1].Mark) 45 num++; 46 if(num==f) 47 { 48 printf("%d %d\n",mark1[j].cl,mark1[j].gre); 49 } 50 if(num>f) 51 break; 52 } 53 } 54 return 0; 55 }
在输出的时候 因为少考虑输出最后一位一直wan 最后搞定了