比赛 20161115 评测结果 AWWTWEEEEE
题目名称 军队 最终得分 10
用户昵称 123 运行时间 1.856 s
代码语言 C++ 内存使用 30.83 MiB
提交时间 2016-11-15 11:47:31
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <vector>
using namespace std;
int ya[2000][2000],yd[2000][2000]={0},n;
int zhao(int a,int b)
{
	int c;
	for(;;)
	{
		c=a%b;
		if(c==0)
		{
			if(b==1)
				return 1;
			else return 0;
		}
		a=b;b=c;
	}
}
int main(){
	freopen ("tarmy.in","r",stdin);
	freopen ("tarmy.out","w",stdout);
	int yb[10000]={0},yc[10000]={0},jia[10000]={0};
	int a,b,c,d,e,f,g,k;
	cin>>n>>k;
	for(a=1;a<=n;a++)
	{
		cin>>yb[a];
	}
	for(a=1;a<=n;a++)
	{
		for(b=1;b<=n;b++)
		{
			if(a==b)
				continue;
			f=zhao(max(yb[a],yb[b]),min(yb[a],yb[b]));
			if(a!=b&&f==1)
			{
				ya[yb[a]][yb[b]]=1;
				jia[a]++;
				yc[a]=yc[a]+yb[b];
				yd[a][jia[a]]=yb[b];
			}
		}
		yc[a]=yc[a]+yb[a];
	}
	for(a=1;a<=n;a++)
	{
		if(yc[a]>=k)
		{
			for(b=1;b<=jia[a];b++)
			{
				if(yd[a][b]!=0)
				{
					for(c=b+1;c<=jia[a];c++)
					{
						if(ya[yd[a][b]][yd[a][c]]==0)
						{
							if(yd[a][b]>yd[a][c])
							{
								yd[a][c]=0;
							}
							else
							{
								yd[a][b]=yd[a][c];
								yd[a][c]=0;
							}
						}
					}
				}
			}
		}
	}
	d=0;
	int ans,ansb;
	ans=0;
	for(a=1;a<=n;a++)
	{
		ansb=0;
		e=0;
		for(b=1;b<=jia[a];b++)
		{
			if(yd[a][b]!=0)
			{
				ansb=ansb+yd[a][b];
				e++;
			}
		}
		e=e+1;
		ansb=ansb+yb[a];
		if(ansb>=k)
			ans=max(ans,e);
	}
	cout<<ans;
	return 0;
}