結果
問題 | No.1897 Sum of 2nd Max |
ユーザー |
👑 |
提出日時 | 2022-03-20 10:43:48 |
言語 | C (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 85 ms / 2,000 ms |
コード長 | 632 bytes |
コンパイル時間 | 578 ms |
コンパイル使用メモリ | 31,104 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-11-28 11:40:05 |
合計ジャッジ時間 | 2,569 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 30 |
ソースコード
#include <stdio.h>const int Mod = 998244353;long long pow_mod(int n, long long k){long long N, ans = 1;for (N = n; k > 0; k >>= 1, N = N * N % Mod) if (k & 1) ans = ans * N % Mod;return ans;}int main(){int N, K;scanf("%d %d", &N, &K);int i;long long ans = 1 + (long long)N * (K - 1) % Mod, tmp;for (i = 2; i <= K; i++) {tmp = 0;if (i < K) tmp += (pow_mod(i, N - 1) - pow_mod(i - 1, N - 1) + Mod) * (K - i) % Mod * N % Mod;tmp += pow_mod(i, N) - pow_mod(i - 1, N) + Mod - pow_mod(i - 1, N - 1) * N % Mod + Mod;ans += tmp * i % Mod;}printf("%lld\n", ans % Mod);fflush(stdout);return 0;}