poj 2100 Graveyard Design

时间:2023-03-09 08:41:33
poj 2100 Graveyard Design

直接枚举就行了

#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<iomanip>
#include<cmath>
#include<cstring>
#include<vector>
#define ll __int64
#define pi acos(-1.0)
#define SIZE 1024
using namespace std;
const int mod =;
vector<ll>p;
int main(){
ll i,j,t;
ll n,sum,num;
while(cin>>n){
p.clear();
i=j=;
sum=;
num=(ll)sqrt(n*1.0);
while(j<=num){
sum+=j*j;
if(sum>=n){
while(sum>n){
sum-=i*i;
i++;
}
if(sum==n){
p.push_back(i);
p.push_back(j);
}
}
j++;
}
cout<<p.size()/<<endl;
for(i=;i<p.size();i+=){
cout<<p[i+]-p[i]+;
for(j=p[i];j<=p[i+];j++){
cout<<' '<<j;
}
cout<<endl;
}
}
return ;
}