結果
問題 |
No.1897 Sum of 2nd Max
|
ユーザー |
|
提出日時 | 2022-02-06 22:02:36 |
言語 | Java (openjdk 23) |
結果 |
RE
|
実行時間 | - |
コード長 | 1,024 bytes |
コンパイル時間 | 1,824 ms |
コンパイル使用メモリ | 76,640 KB |
実行使用メモリ | 56,440 KB |
最終ジャッジ日時 | 2024-11-28 11:38:49 |
合計ジャッジ時間 | 7,854 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 13 RE * 17 |
ソースコード
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); long n = sc.nextLong(); long k = sc.nextLong(); long mod = 998244353; long [] q = new long [(int)n + 10]; long ans = 0; for(int i = (int)k + 1; i > 0; i--){ q[i] = modPow(k, n, mod) - modPow(i - 1,n, mod) - (((k - i + 1) * n) % mod) * modPow(i - 1, n - 1, mod); q[i] %= mod; ans += ((q[i] - q[i + 1] + mod) * i) % mod; ans %= mod; } System.out.println(ans); } public static long modPow(long a, long n, long mod) { long ans = 1; long tmp = a; while(true) { if (n < 1) { break; } if (n % 2 == 1) { ans *= tmp; ans %= mod; } tmp *= tmp; tmp %= mod; n /= 2; } return ans; } }