結果
| 問題 | No.3331 Consecutive Cubic Sum |
| コンテスト | |
| ユーザー |
ID 21712
|
| 提出日時 | 2025-12-28 13:31:32 |
| 言語 | Go (1.25.5) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,019 bytes |
| 記録 | |
| コンパイル時間 | 12,424 ms |
| コンパイル使用メモリ | 238,204 KB |
| 実行使用メモリ | 8,680 KB |
| 最終ジャッジ日時 | 2025-12-28 13:32:09 |
| 合計ジャッジ時間 | 35,393 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 27 WA * 20 |
ソースコード
package main
import . "fmt"
func main() {
var n int
Scan(&n)
ans := solve(n)
Println(len(ans))
Print(ans...)
}
func solve(n int) (ans []any) {
sum := 0
r := 0
for i := 1; i*i*i<=n; i++ {
sum +=i*i*i
r = i
}
for l := 1; l*l*l<=n; l++ {
if r < l {
r = l
sum = r*r*r
}
for sum > n && r > l {
sum -= r*r*r
r--
}
for sum < n {
r++
sum += r*r*r
}
if sum == n {
ans = append(ans, Sprintf("%d %d\n", l, r))
}
sum -= l*l*l
}
return
}
func check() {
t := make([][]any, 100*100*100+1)
for l := 1; l <= 100; l++ {
for r, sum := l, 0; r <= 100; r++ {
sum += r*r*r
if sum >= len(t) {
break
}
str := Sprintf("%d %d\n", l, r)
t[sum] = append(t[sum], str)
}
}
for sum, list := range t {
if sum == 0 {
continue
}
ans := solve(sum)
if len(ans) != len(list) {
println(sum)
println(len(list))
println(len(ans))
println(Sprintf("%#v", list))
println(Sprintf("%#v", ans))
panic("unmatch")
}
}
}
func init() {
check()
}
ID 21712