Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
我对拍没有发现错误啊,为什么Wrong Answer#include <iostream> #include <cmath> using namespace std; #define MAX 1000 __int64 x[MAX], k[MAX]; int main() { __int64 n, i, j, num, t, a, b, c, deta, x1, x2; while(scanf("%I64d", &n) != EOF) { t = 0, num = 0; while((t + 1) * (t + 2) * (2 * t + 3) <= 6 * n) { a = t + 1, b = t * (t + 1), c = (t * (t + 1) * (2 * t + 1)) / 6 - n; deta = b * b - 4 * a * c; if(deta >= 0) { __int64 temp = (__int64) sqrt(deta); if(temp * temp == deta && temp > b && ((-1) * b + temp) % (2 * a) == 0) { x1 = ((-1) * b + temp) / (2 * a); x2 = ((-1) * b - temp) / (2 * a); x[num] = x1; k[num] = t + 1; __int64 sum = 0; for(i = 0; i < t + 1; i++) { sum += x1 * x1; x1++; } if(sum == n) { num++; } } } t++; } printf("%I64d\n", num); for(i = num - 1; i >= 0; i--) { printf("%I64d ", k[i]); for(j = 0; j < k[i]; j++) { printf("%I64d ", x[i]++); } putchar('\n'); } } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator