POJ 1543 Perfect Cubes
となる自然数の組をa <= b <= cかつd <= N以下で求め、dの小さい方から出力せよ。
単純に探索すればいい。TLEが怖かったのでなるべく外側ループで探索を少なくした。
int main(int argc, char **argv){ int n; scanf("%d", &n); for(int d = 2; d <= n; d++){ for(int a = 2; a < n; a++){ if(a > d) continue; for(int b = a; b < n; b++){ for(int c = b; c < n; c++){ int tmp = a * a * a + b * b * b + c * c * c; if(d * d * d == tmp){ printf("Cube = %d, Triple = (%d,%d,%d)\n", d, a, b, c); } } } } } return 0; }
TopCoderのほうがすこぶる調子悪いので、簡単な問題ばかり解いて油売ってる場合じゃないんだが。。
追記
今見たらかなり変なコードだ。
Get up! 明日のSUPER ST@R!