usaco airprog

来源:互联网 发布:php三元运算符 编辑:程序博客网 时间:2024/05/21 06:16
#include<stdio.h>
int n,m,e,f[202510],a[202510];
void qs(int l,int r)
{
int i,j,mid,t;
i=l;j=r;mid=a[(l+r)/2];
while (i<j) {
while (a[i]<mid) i++;
while (a[j]>mid) j--;
if (i<=j) {
t=a[i];a[i]=a[j];a[j]=t;
i++;j--;
}
}
if (l<j) qs(l,j);
if (i<r) qs(i,r);
}
int main()
{
freopen("ariprog.in","r",stdin);
freopen("ariprog.out","w",stdout);
int i,j,ff=1,aa,bb,k;
scanf("%d%d",&n,&m);
for (i=0;i<=m;i++) for (j=i;j<=m;j++) {f[i*i+j*j]=1;a[++e]=i*i+j*j;}
qs(1,e);
for (j=1;j<=a[e]-a[1];j++) {
for (i=1;i<=e-n+1;i++) {
if (a[i]+(n-1)*j>a[e]) break;
int fff=1;
for (k=a[i];k<=a[i]+(n-1)*j;k+=j) if (!f[k]) {fff=0; break;}
if (fff) {if (aa!=a[i] || j!=bb)printf("%d %d\n",a[i],j);ff=0;aa=a[i];bb=j;}
}
}
if (ff) printf("NONE\n");
return 0;
}
1 0
原创粉丝点击