WIKIOI-1361 知識排名
題目描述 Description
小牛舉辦了一年一屆的知識競賽,小牛 RK 也參與其中,知識競賽
規則是一題隻有錯或對兩種情況,且對標誌為 1,錯標誌為 0。每題
的分值為該題錯誤的人數,小牛 RK 已經知道了每個人的各個題目的
情況,他想讓你求出他的總排名。(此表格規定,第一行的序號為 1,
以此類推)。
輸入描述 Input Description
輸入共 N+1 行
第一行輸入 ID,N,M,分別表示參加的 RK 的序號,小牛個數,題
目總數。
第 2-N+1 行輸入每個人每道題目的情況。
輸出描述 Output Description
輸出共 1 行
輸出小牛 RK 的排名,規定成績一樣時,序號越小的排名越高。
樣例輸入 Sample Input
1 3 3
1 1 1
1 1 1
0 0 1
樣例輸出 Sample Output
1
數據範圍及提示 Data Size & Hint
n,m≤1000
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; struct node { int count; int num; int p[1500]; }a[1500]; int problem[1500]; int cmp(node x,node y) { if(x.count!=y.count) return x.count>y.count; if(x.num!=y.num) return x.num } int main() { int i,j,x,n,m,per,k; scanf("%d %d %d",&x,&n,&m); memset(a,0,sizeof(a)); memset(problem,0,sizeof(problem)); for(i=0;i { a[i].num=i+1;k=1; for(j=1;j<=m;j++) { scanf("%d",&per); a[i].p[k++]=per; if(per==0) problem[j]+=1; } } for(i=0;i { for(j=1;j<=m;j++) { if(a[i].p[j]==1) a[i].count+=problem[j]; } } sort(a,a+n,cmp); for(i=0;i { if(a[i].num==x) { printf("%d\n",i+1); break; } } return 0; }
最後更新:2017-04-03 12:55:32