#include #include #define MAX 10001LL long long a[MAX]; long long nb[MAX]; int main() { memset(a, 0, sizeof(a)); memset(nb, 0, sizeof(nb)); long long u = 1; for (long long n=1; n0; k--) { s+=a[k]; if (s>n) { break; } else if (nb[s]+1 > a[s]) { ok = false; break; } } if (ok) { s = 0; for (long long k=n; k>0; k--) { s+=a[k]; if (s>=MAX) { break; } else { nb[s]++; } } break; } } while (u<=n && nb[u]==a[u]) { u++; } printf("%lld %lld\n", n, a[n]); fflush(stdout); } return 0; }