結果
| 問題 |
No.2111 Sum of Diff
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2022-10-28 23:48:55 |
| 言語 | Go (1.23.4) |
| 結果 |
AC
|
| 実行時間 | 58 ms / 2,000 ms |
| コード長 | 667 bytes |
| コンパイル時間 | 13,656 ms |
| コンパイル使用メモリ | 232,324 KB |
| 実行使用メモリ | 9,680 KB |
| 最終ジャッジ日時 | 2024-07-06 03:08:14 |
| 合計ジャッジ時間 | 15,338 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 20 |
ソースコード
// No.2111 Sum of Diff
package main
import (
"bufio"
"fmt"
"os"
"strconv"
"strings"
)
func main() {
sc := bufio.NewScanner(os.Stdin)
sc.Buffer(make([]byte, 200_000*10+2), 200_000*10+2)
sc.Scan()
N, _ := strconv.Atoi(sc.Text())
sc.Scan()
ss := strings.Split(sc.Text(), " ")
sum := 0
for i, s := range ss {
a, _ := strconv.Atoi(s)
k := modpow(2, N-1-i, MOD) - modpow(2, i, MOD)
v := (k * a % MOD)
if v < 0 {
v += MOD
}
sum = (sum + v) % MOD
}
fmt.Println(sum)
}
const MOD = 998244353
func modpow(a int, n int, mod int) int {
m := 1
for n > 0 {
if n&1 == 1 {
m = (m * a) % mod
}
a = (a * a) % mod
n >>= 1
}
return m
}