比赛 |
20140711B班小测 |
评测结果 |
AAAAAAAA |
题目名称 |
等差数列 |
最终得分 |
100 |
用户昵称 |
幻灵子 |
运行时间 |
1.218 s |
代码语言 |
C++ |
内存使用 |
0.56 MiB |
提交时间 |
2014-07-11 15:55:04 |
显示代码纯文本
#include <vector>
#include <algorithm>
#include <functional>
#include <cstdlib>
#include <iostream>
#include <fstream>
using namespace std;
const int N = 300000;
bool flag[N];
bool none_find =true;
int array[N];
int main(){
int i,j,num,n,m, def;
ifstream in("ariprog.in");
ofstream out("ariprog.out");
in>>n>>m;
num=0;
for(i=0;i<=m;++i)
for(j=0;j<=m;++j){
if(!flag[i*i+j*j]){
array[num++] = i*i+j*j;
}
flag[i*i+j*j] = true;
}
sort(array, array+num);
//a+(n-1)*b <= m*m+m*m
bool is;
int p,c;
int max = 2*m*m;
int def_max = max/(n-1);
for(def=1; def<=def_max; def++){
for(p=0; array[p]<=(max-((n-1)*def)); p++){
is = true;
for(c=(n-1); c>=0; c--){
if(!flag[array[p]+c*def]){
is =false;
break;
}
}
if(is){
none_find = false;
out<<array[p]<<" "<<def<<endl;
}
}
}
if(none_find)
out<<"NONE"<<endl;
return 0;
}