先预处理出集合s中所有的数,然后dfs即可。
/*
PROG: ariprog
LANG: C++
*/
#include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define rep(i,a,b) for(i=a;i<=b;i++)
using namespace std;
bool vis[150005];
int n;
bool dfs(int a,int b,int deep)
{
if(deep==n) return 1;
if(!vis[a+deep*b]) return 0;
else return dfs(a,b,deep+1);
}
int main()
{
freopen("ariprog.in","r",stdin);
freopen("ariprog.out","w",stdout);
int m,i,j;
scanf("%d%d",&n,&m);
rep(i,0,m) rep(j,i,m) vis[i*i+j*j]=1;
int a,b,tmp=m*m*2;
bool flag=0;
rep(b,1,tmp)
{
int tmp2=tmp-(n-1)*b;
rep(a,0,tmp2)
{
if(dfs(a,b,0)) printf("%d %d\n",a,b),flag=1;
}
}
if(!flag) printf("NONE\n");
return 0;
}