记录编号 48867 评测结果 AAAAAAAAAAAA
题目名称 H 指数因子 最终得分 100
用户昵称 Gravatar苏轼 是否通过 通过
代码语言 C++ 运行时间 0.011 s
提交时间 2012-11-06 19:49:50 内存使用 3.32 MiB
显示代码纯文本
#include <fstream>
using namespace std;
ifstream cin("publish.in");
ofstream cout("publish.out");
int n,p[101][101],s=1,w[101],zong[101],ans[101];
string st[101];
void init()
{
	int i,j,k,q;char a;
	string st1;
	cin>>n;
	for (i=0;i<=n;i++)
		for (j=0;j<=n;j++) p[i][j]=0;
	cin>>st1;st[1]=st1;w[1]=1;zong[1]++;
	for (i=2;i<=n;i++)
	{
		cin>>st1;
		for (j=1;j<=s;j++)
		{
			if (st[j]==st1) {w[i]=j;zong[j]++;break;}
		}
		if (j==s+1) 
		{
			s++;w[i]=s;zong[s]=1;st[s]=st1;
		}
	}
	for (i=1;i<=n;i++)
		for (j=1;j<=n;j++)
		{
			cin>>a;
			if (a=='1')
			{
				q=0;
				for (k=1;k<=j;k++)
					if (w[k]==w[j]) q++;
				p[w[j]][q]++;
			}
		}
}
int main()
{
	int i,j,a,b,h;
	string o;
	init();
	for (i=1;i<=s;i++)
	{
		for (h=0;h<=zong[i];h++)
		{
			a=0;b=0;
			for (j=1;j<=zong[i];j++)
			{
				if (p[i][j]>=h) a++;
			}
			if (a>=h) ans[i]=h;
		}
	}
	for (i=1;i<=s-1;i++)
		for (j=i+1;j<=s;j++)
		{
			if (ans[i]<ans[j])
			{
				a=ans[i];ans[i]=ans[j];ans[j]=a;
				o=st[i];st[i]=st[j];st[j]=o;
			}
			if (ans[i]==ans[j])
			{
				if (st[j]<st[i])
				{
					a=ans[i];ans[i]=ans[j];ans[j]=a;
					o=st[i];st[i]=st[j];st[j]=o;
				}
			}
		}
	for (i=1;i<=s;i++)
		cout<<st[i]<<' '<<ans[i]<<endl;
	return 0;
}