比赛 |
20121106 |
评测结果 |
AWAWWWWWWWWW |
题目名称 |
H 指数因子 |
最终得分 |
16 |
用户昵称 |
Cloud |
运行时间 |
0.007 s |
代码语言 |
C++ |
内存使用 |
2.95 MiB |
提交时间 |
2012-11-06 08:57:44 |
显示代码纯文本
#include<cstring>
#include<cstdlib>
#include<fstream>
using namespace std;
struct yu
{
string name;
int n,h;
int a[100][2];
}s[100];
int cmp(const void *a,const void *b)
{
struct yu *c=(struct yu *)a;
struct yu *d=(struct yu *)b;
if(c->h!=d->h)
return d->h - c->h;
else
return *(string *)c > *(string *)d ?1:-1;
}
int Min(int x,int y)
{
if(x>y)
return y;
else
return x;
}
int main(void)
{
ifstream fin("publish.in");
ofstream fout("publish.out");
int m;
fin>>m;
int i,j,k;
for(i=0,j=0;i<m;i++)
{
fin>>s[j].name;
s[j].a[s[j].n][0]=i;
s[j].n++;
j++;
for(k=0;k<j-1;k++)
if(s[k].name==s[j-1].name)
{
s[k].a[s[k].n][0]=i;
s[k].n++;
j--;
break;
}
}
int hnum[100][100];
string st;
for(i=0;i<m;i++)
{
fin>>st;
for(k=0;k<m;k++)
{
hnum[i][k]=st[k]-'0';
if(i==k)
hnum[i][k]=0;
}
}
int p,q;
int min=~0u>>1;
for(i=0;i<j;i++)
{
min=~0u>>1;
for(k=0;k<s[i].n;k++)
{
p=s[i].a[k][0];
for(q=0;q<m;q++)
s[i].a[k][1]+=hnum[q][p];
if(s[i].a[k][1]<min)
min=s[i].a[k][1];
}
s[i].h=Min(min,s[i].n);
}
qsort(s,j,sizeof(s[0]),cmp);
for(i=0;i<j;i++)
fout<<s[i].name<<" "<<s[i].h<<endl;
fin.close();
fout.close();
return 0;
}