結果
| 問題 |
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;
}
}