P9114
IOI 好水啊。
直接按照题目模拟。根据做题情况算出每道题没做出来的人数、每人做出来的题数和每人的分数。之后扫描一遍,算出有多少人在他前面,注意排名细节:分数第一关键字,题数第二关键字,编号第三关键字。
int n,m,k,ans,a[2010][2010],b[2010],c[2010],d[N];
void solve()
{
n=read(),m=read(),k=read();
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
a[i][j]=read(),b[j]+=a[i][j]^1,d[i]+=a[i][j];
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
c[i]+=a[i][j]*b[j];
for(int i=1;i<=n;i++)
if(c[i]>c[k]||c[i]==c[k]&&d[i]>d[k]||c[i]==c[k]&&d[i]==d[k]&&i<k)
ans++;
write(c[k]," "),write(ans+1,"");
}