/*
ID:kevin_s1
PROG:ariprog
LANG:C++
*/

#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <vector>
#include <map>
#include <set>
#include <algorithm>
#include <cstdlib>
#include <list>
#include <cmath>

using namespace std;

//gobal variable====
int doubleSqure[999999];
int table[999999];
int _index;
int M,N;
int lim;

struct node{
	int a;
	int d;
	
};

vector<node> result;
//==================


//function==========
void init(){
	memset(table,0,sizeof(table));
	_index = 1;
	for(int i = 0; i <= M; i++){
		for(int j = 0; j <= M; j++){
			int num = i * i + j * j;
			if(table[num] == 0){
				doubleSqure[_index++] = num;
				table[num] = 1;
			}	
		}
	}
	_index--;
}

void deal(int x){
	int num = doubleSqure[x];
	for(int i = x + 1; i <= _index - N + 2; i++){
		if(doubleSqure[x] + (doubleSqure[i] - doubleSqure[x])*(N - 1) > lim)
			break;

相关文章: