记录编号 366788 评测结果 AAAAAAAA
题目名称 等差数列 最终得分 100
用户昵称 Gravatar波大比 是否通过 通过
代码语言 C++ 运行时间 6.064 s
提交时间 2017-01-25 22:16:18 内存使用 5.53 MiB
显示代码纯文本
//669
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <algorithm>


using namespace std;

const int nmax=700001;

int len,lim;
bool isit[nmax]={0};

int ans;

class point
{
public:
	int a,b;
}poi[nmax];

void PreDo()
{
	int tmp=0;
	ans=0;
	scanf("%d%d",&len,&lim);
	for(int i=0;i<=lim;i++)
	{
		for(int j=0;j<=lim;j++)
		{
			tmp=i*i+j*j;
			isit[tmp]=1;
		}
	}
}

bool cmp(point x,point y)
{
	if(x.b==y.b)
	{
		return x.a<y.a;
	}
	else
	{
		return x.b<y.b;
	}
}

void Col()
{
	bool tag=1;
	for(int i=1;i<=lim*lim;i++)
	{
		for(int j=0;j<=lim*lim;j++)
		{
			int checklen=0;
			for(int n=0;n<=len;n++)
			{
				if(i*n+j>(lim+1)*(lim+1)+(lim+1)*(lim+1))
				{
					tag=0;
					break;
				}
				if(isit[i*n+j])
				{
					checklen++;
				}
				else
				{
					break;
				}
				if(checklen==len)
				{
					ans++;
					poi[ans].a=j;
					poi[ans].b=i;
					break;
				}
			}
			if(tag==0)
			{
				break;
			}
		}
	}
	sort(poi+1,poi+ans+1,cmp);
	if(ans==0)
	{
		printf("NONE\n");
		return ;
	}
	for(int i=1;i<=ans;i++)
	{
		printf("%d %d\n",poi[i].a,poi[i].b);
	}
}


int main()
{
	freopen("ariprog.in","r",stdin);
	freopen("ariprog.out","w",stdout);
	PreDo();
	Col();
}