题目描述
小牛举办了一年一届的知识竞赛,小牛 RK 也参与其中,知识竞赛
规则是一题只有错或对两种情况,且对标志为 1,错标志为 0。每题
的分值为该题错误的人数,小牛 RK 已经知道了每个人的各个题目的
情况,他想让你求出他的总排名。(此表格规定,第一行的序号为 1,
以此类推)。
思路
直接暴力枚举,记录每一题有多少人对,然后按题目要求给每个人加分,最后排序输出就可以了
O(n^2)
#include <stdio.h>
#include <algorithm>
using namespace std;
int a[1001][1001];
struct arr
{
int l,y;
};
arr f[1001];
int cam(arr a,arr b)
{
return a.y>b.y||(a.y==b.y&&a.l<b.l);
}
int main()
{
int x,n,m;
scanf("%d%d%d",&x,&n,&m);
for (int i=1;i<=n;i++)
for (int j=1;j<=m;j++)
scanf("%d",&a[i][j]);
for (int i=1;i<=n;i++)
f[i].l=i;
for (int i=1;i<=m;i++)
{
int t=0;
for (int j=1;j<=n;j++)
{
if (a[j][i]==0) t++;
}
for (int j=1;j<=n;j++)
if (a[j][i]==1) f[j].y+=t;
}
sort(f+1,f+n+1,cam);
for (int i=1;i<=n;i++)
if (f[i].l==x) printf("%d\n",i);
}
Comments NOTHING