1361 知识排名 (排序)

来源:互联网 发布:全国路网shp数据下载 编辑:程序博客网 时间:2024/05/29 04:02

题目描述 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


该题错误的人数为该题的分数,计算出每一题的分数,在进行结构体关键字排序

#include<iostream>#include<cstdio>#include<algorithm>using namespace std;struct st{int id;int sum;int sc[1010];}a[1010];int  cmp(const st &x,const st &y){if (x.sum == y.sum){if (x.id < y.id)return 1;elsereturn 0;}else if (x.sum > y.sum)return 1;elsereturn 0;}int main(){int i,j,k,id,n,m,b[1010]={0};cin>>id>>n>>m;for (i=0; i<n; i++){a[i].id = i+1;for (j=0; j<m; j++)cin>>a[i].sc[j];}for (i=0; i<m; i++){for (j=0; j<n; j++){if (a[j].sc[i] == 0){b[i]++;}}}for (i=0; i<n; i++){for (j=0; j<m; j++)if (a[i].sc[j] == 1){a[i].sum += b[j];}}sort(a,a+n,cmp);for (i=0; i<n; i++){for (j=0; j<m; j++)cout<<a[i].sc[j];cout<<endl;}for (i=0; i<n; i++){if (a[i].id == id) { cout<<i+1; break; }}return 0;}



0 0
原创粉丝点击