#include <iostream>
#include <cstdio>
#include <string>
#include <algorithm>
#include <vector>
#include <queue>
#include <stack>
#include <cstring>
#include <set>
#include <cmath>
#include <map>
typedef long long ll;
typedef unsigned long long ull;
using namespace std;
const int MN = 65005;
const int MAXN = 1000005;
const int INF = 0x3f3f3f3f;
#define IOS ios::sync_with_stdio(false);
ll n;
ll s[101][MN];
int ans;
void solve() {
ll l, r;
ll sum;
l = r = 1;
sum = 0;
for (;;) {
while (sum < n) {
sum += r * r;
r++;
}
if ((r - 1) * (r - 1) > n) {
break;
}
if (sum == n) {
int pos = 1;
s[ans][0] = r - l;
for (int i = l; i < r; i++) {
s[ans][pos++] = i;
}
ans++;
sum += r * r;
r++;
} else if (sum > n) {
sum -= l * l;
++l;
}
//printf("%d %d\n", l, r);
}
printf("%d\n", ans);
for (int i = 0; i < ans; i++) {
for (int j = 0; j <= s[i][0]; j++) {
printf("%lld ", s[i][j]);
}
printf("\n");
}
}
int main() {
scanf("%lld", &n);
solve();
return 0;
}
POJ-2100 (尺取)
最新推荐文章于 2023-09-10 16:33:40 发布