记录编号 110660 评测结果 AAAAAAAA
题目名称 等差数列 最终得分 100
用户昵称 Gravatarwolf 是否通过 通过
代码语言 C++ 运行时间 3.607 s
提交时间 2014-07-12 10:03:03 内存使用 0.31 MiB
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<vector>
#include<algorithm>
using namespace std;
class point{
public:
	int a;
	int b;
	point(int c,int d){
		a=c;
		b=d;
	}
};
int N,M;int r=0;int u;
vector<bool> num;
vector<point> end;
bool seek(int t){
	if(num[t])
		return 1;
	return 0;
}
int main(){
	FILE *in,*out;
	in=fopen("ariprog.in","r");
	out=fopen("ariprog.out","w");
	fscanf(in," %d %d",&N,&M);
	num.resize(125000,0);
	int mmax;
	for(int i=0;i!=M+1;++i){
		for(int k=0;k!=M+1;++k){
			int e;
			e=i*i+k*k;
			num[e]=1;
			mmax=e;
		}
		
	}
	//sort(num.begin(),num.begin()+r);
	//cout<<"mmax="<<mmax<<endl;;
	/*for(int i=0;i!=r;++i){
		cout<<num[i]<<endl;
	}*/
	for(int b=1;;++b){
		if(b*(N-1)>mmax){
			break;
		}
		vector<int> pp;
		for(int i=0;i!=N;++i){
			pp.push_back(i*b);
		}
		for(int a=0;;++a){
			if(a+pp[pp.size()-1]>mmax){
				break;
			}
			bool off=1;
			u=1;
			for(int i=0;i!=N;++i){
				if(seek(a+pp[i])){
				}
				else{
					off=0;
					break;
				}
			}
			if(off){
				point e(a,b);
				end.push_back(e);
			}
		}
	}
	for(int i=0;i!=end.size();++i){
		fprintf(out,"%d %d\n",end[i].a,end[i].b);
		//cout<<end[i].a<<"  "<<end[i].b<<endl;
	}
	if(end.size()==0)
		fprintf(out,"NONE");
	return 0;
}
//designed by wolf