結果
問題 | No.864 四方演算 |
ユーザー |
![]() |
提出日時 | 2019-08-17 22:25:03 |
言語 | Go (1.23.4) |
結果 |
AC
|
実行時間 | 13 ms / 1,000 ms |
コード長 | 557 bytes |
コンパイル時間 | 14,328 ms |
コンパイル使用メモリ | 234,356 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-09-25 10:50:20 |
合計ジャッジ時間 | 15,185 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 27 |
ソースコード
package mainimport ("fmt""sort")func divisors(x int) []int {var r []intfor i := 1; i*i <= x; i++ {if x%i == 0 {r = append(r, i)if i*i != x {r = append(r, x/i)}}}sort.Ints(r)return r}func patterns(x int) int {if x <= 1 {return 0} else if x <= n+1 {return x - 1} else if x <= 2*n {return 2*n + 1 - x} else {return 0}}var n, k intfunc main() {fmt.Scan(&n, &k)divs := divisors(k)ans := 0for i := range divs {ans += patterns(divs[i]) * patterns(k/divs[i])}fmt.Println(ans)}