2013年11月3日 星期日

[USACO][Serching] 1-4-3 Arithmetic Progressions


/*
ID: 551100k1
LANG: C++
TASK: ariprog
*/
#include<stdio.h>
int s[1000005]={0},arr[50005],top=0;
int main(){
    freopen("ariprog.in","r",stdin);
    freopen("ariprog.out","w",stdout);
    int n,m,i,j,add,k,flag=1;
    scanf("%d%d",&n,&m);
    for(i=0;i<=m;i++)
        for(j=0;j<=m;j++)
            s[i*i+j*j]=1;
    for(i=0;i<=m*m*2;i++)
        if(s[i])
            arr[top++]=i;
    for(i=1;i<=5000;i++){
        for(j=0;j<top;j++){
            add=0,k=arr[j];
            while(k<100000 && s[k]==1){
                add++;
                if(add==n){
                    printf("%d %d\n",k-i*(n-1),i);
                    flag=0;
                    break;
                }k=k+i;
            }
        }
    }
    if(flag) puts("NONE");
}

沒有留言:

張貼留言