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;}