记录编号 |
110660 |
评测结果 |
AAAAAAAA |
题目名称 |
等差数列 |
最终得分 |
100 |
用户昵称 |
wolf |
是否通过 |
通过 |
代码语言 |
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