Arithmetic Progressions
来源:互联网 发布:淘宝店铺名称 编辑:程序博客网 时间:2024/06/06 09:33
#include<fstream>using namespace std;int main(){int a,b,c[10000],d[10000],i,j=0,l=0,k=0,m,n,sum,p,q;char f=false;ifstream fin ("ariprog.in");ofstream fout ("ariprog.out");fin>>n>>m;for(a=0;a<=m*m;a++)for(b=1;b<=m*m;b++){for(i=1;i<=n;i++){sum=a+(i-1)*b;if(sum>2*m*m){break;f=true;}for(p=0;p<=m;p++){for(q=0;q<=m;q++){if(p*p+q*q==sum)break;}if(q<=m)break;}if(p<=m && q<=m){k++;if(k==n){ c[++j]=a; d[++l]=b; k=0; break;}}}k=0;if(f){f=false;break;}}if(j==0)fout<<"NONE"<<endl;else{ int x,y,z,temp1,temp2; for(x=2;x<=j;x++) { if(d[x]<d[x-1]) { temp1=c[x]; temp2=d[x]; for(y=x-1;y>=1 && d[y]>temp2;y--) { d[y+1]=d[y]; c[y+1]=c[y];} z=y;if(d[y]==temp2){for(z=y;z>=1 && c[z]>temp1;z--){d[z+1]=d[z];c[z+1]=c[z];}} d[z+1]=temp2; c[z+1]=temp1;} if(d[x]==d[x-1]){temp1=c[x];temp2=d[x];for(y=x-1;y>=1 && c[y]>temp1 && d[y]==temp2;y--){d[y+1]=d[y];c[y+1]=c[y];}d[y+1]=temp2;c[y+1]=temp1;}} for(x=1;x<=j;x++){fout<<c[x]<<" "<<d[x]<<endl;}}return 0;}