比赛 |
20121106 |
评测结果 |
AAAAAAAAAAAA |
题目名称 |
H 指数因子 |
最终得分 |
100 |
用户昵称 |
TBK |
运行时间 |
0.010 s |
代码语言 |
C++ |
内存使用 |
3.19 MiB |
提交时间 |
2012-11-06 09:03:09 |
显示代码纯文本
#include <iostream>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <string>
#include <set>
#include <queue>
#include <algorithm>
#define MAXN 0x7fffffff
using namespace std;
int b,c,d,l,m,n,k[101],r[101][101],x[101];
char cha[102][30],cc[30],hh;
struct fun
{
char ch[30];
int k;
}f[101];
int Compare(const void*elem1,const void*elem2)
{
struct fun *elem3=(struct fun *)elem1;
struct fun *elem4=(struct fun *)elem2;
if (elem3->k != elem4->k) return elem4->k - elem3->k;
else return strcmp(elem3->ch,elem4->ch);
}
int main(void)
{
freopen("publish.in","r",stdin);
freopen("publish.out","w",stdout);
scanf("%d",&b);
for (c=0;c<b;c++)
{
cin>>cc;
for (d=0;d<n;d++)
if (strcmp(cc,cha[d])==0) break;
if (d==n)
{
for (l=0;l<strlen(cc);l++) cha[n][l]=cc[l];
r[n][x[n]]=c+1;
x[n]++;
n++;
}
else
{
r[d][x[d]]=c+1;
x[d]++;
}
}
for (c=1;c<=b;c++)
for (d=1;d<=b;d++)
{
cin>>hh;
if (hh=='1') k[d]++;
}
for (c=0;c<n;c++)
{
for (d=0;d<strlen(cha[c]);d++) f[c].ch[d]=cha[c][d];
for (d=0;d<x[c];d++) r[c][d]=k[r[c][d]];
for (d=0;d<x[c]-1;d++)
for (l=d+1;l<x[c];l++)
if (r[c][d]<r[c][l])
{
m=r[c][d];
r[c][d]=r[c][l];
r[c][l]=m;
}
for (d=1;d<=x[c];d++)
if (r[c][d-1]<d) break;
d--;
f[c].k=d;
}
qsort(f,n,sizeof(fun),Compare);
for (c=0;c<n;c++) cout<<f[c].ch<<" "<<f[c].k<<endl;
fclose(stdin);
fclose(stdout);
return 0;
}