比赛 |
20140711B班小测 |
评测结果 |
C |
题目名称 |
等差数列 |
最终得分 |
0 |
用户昵称 |
wolf |
运行时间 |
0.000 s |
代码语言 |
C++ |
内存使用 |
0.00 MiB |
提交时间 |
2014-07-11 16:22:46 |
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<vector>
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<int> num;
vector<point> end;
bool seek(int t){
for(int i=u-1;i!=r;++i){
++u;
if(num[i]==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);
for(int i=0;i!=M+1;++i){
for(int k=0;k!=M+1;++k){
num[r]=i*i+k*k;
++r;
}
}
sort(num.begin(),num.begin()+r);
int mmax;
mmax=num[r-1];
//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