結果
| 問題 | No.3535 $E\times - Otogibanashi$ |
| コンテスト | |
| ユーザー |
ID 21712
|
| 提出日時 | 2026-05-09 12:16:34 |
| 言語 | Go (1.26.1) |
| 結果 |
AC
|
| 実行時間 | 596 ms / 2,000 ms |
| コード長 | 1,515 bytes |
| 記録 | |
| コンパイル時間 | 13,993 ms |
| コンパイル使用メモリ | 283,756 KB |
| 実行使用メモリ | 100,352 KB |
| 最終ジャッジ日時 | 2026-05-09 12:16:58 |
| 合計ジャッジ時間 | 17,233 ms |
|
ジャッジサーバーID (参考情報) |
judge3_1 / judge1_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 21 |
ソースコード
package main
import . "fmt"
func main() {
var n,p int
Scan(&n,&p)
exotogi := map[int]bool{}
ans := 0
for d5 := 1; d5 <= 9; d5++ {
d4 := d5
for d3 := 0; d3 <= 9; d3++ {
d0 := d3
for d2 := 0; d2 <= 9; d2++ {
d1 := d2
otogi := d5*1e5+
d4*1e4+
d3*1e3+
d2*1e2+
d1*1e1+
d0*1e0
emax := n / otogi
for e := 1; e <= emax; e++ {
ex := -e*otogi
if _, ok := exotogi[ex]; !ok {
ans += ex
ans += 10*p
ans %= p
exotogi[ex] = true
}
}
}
}
}
Println((ans+p)%p)
}
/*
考察
問題文の意味がまるでわからない
Ex御伽話数とは
k のことなのか
E のことなのか
E*(-k) のことなのか
わからん
絶対値N以下で求めろという文言から
E*(-k) がEx御伽話数のことなのか?
"Ex"御伽噺数
のExはイーエックスではなく
E*のことを指すと読み取れば
E*(-k) がEx御伽話数のことなのだろうけど
自分に読解力が足りなくて問題文を読み解くのが難しい
御伽噺数は共通桁ごと総当たりすれば全通り求められる(9x10x10通り≒約10^3通り?)
Nを御伽話数kで割れば最大のEmaxが求まるので、1~EmaxまでEx御伽噺数を全部求めて(Emaxは大きくても10^4くらい?)、セットで重複除去して総和求めるだけ?
(負数に対してmoduloを計算するのが最近の流行なのか?)
Nが最小の御伽噺数より小さい場合は答えは常に0
*/
ID 21712