比赛 20140711B班小测 评测结果 AAAAAAAA
题目名称 等差数列 最终得分 100
用户昵称 1azyReaper 运行时间 0.860 s
代码语言 C++ 内存使用 2.02 MiB
提交时间 2014-07-11 15:49:03
显示代码纯文本
#include <fstream>
#include <algorithm>
#define MAX 500000
using namespace std;
ifstream fin("ariprog.in");
ofstream fout("ariprog.out");
int a[MAX];
bool flag[MAX],f=true;
int main()
{
	int num=0,n,m,d;
	fin>>n>>m;
	for(int i=0;i<=m;i++)
	{
		for(int j=0;j<=m;j++)
		{
			if(!flag[i*i+j*j])
				a[num++]=i*i+j*j;
			flag[i*i+j*j]=true;
		}
	}
	sort(a,a+num);
	bool b;
	int p,c;
	int max=2*m*m;
	int d_max=max/(n-1);
	for(d=1;d<=d_max;d++)
	{
		for(p=0;a[p]<=(max-((n-1)*d));p++)
		{
			b=true;
			for(c=(n-1);c>=0;c--)
			{
				if(!flag[a[p]+c*d])
				{
					b=false;
					break;
				}
			}
			if(b)
			{
				f=false;
				fout<<a[p]<<' '<<d<<endl;
			}
		}
	}
	if(f)
		fout<<"NONE"<<endl;
	fin.close();
	fout.close();
	return 0;
}//signed by XPK