結果
問題 | No.2585 How many "Who is Santa?" |
ユーザー |
|
提出日時 | 2024-01-07 03:31:26 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 36 ms / 1,225 ms |
コード長 | 1,198 bytes |
コンパイル時間 | 382 ms |
コンパイル使用メモリ | 82,600 KB |
実行使用メモリ | 53,680 KB |
最終ジャッジ日時 | 2024-09-27 19:20:23 |
合計ジャッジ時間 | 2,221 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 22 |
ソースコード
## https://yukicoder.me/problems/no/2585 MOD = 998244353 def main(): N = int(input()) answer = 0 if N > 2: pow_n2 = pow(N - 2, N - 2, MOD) # Nについて「サンタ」と言及している人がN以外でふたり以上いる場合 ans = pow(N - 1, N - 1, MOD) ans -= ((N - 1) * pow_n2) % MOD ans %= MOD ans -= pow(N - 2, N - 1, MOD) ans %= MOD ans *= N - 1 ans %= MOD answer += ans answer %= MOD # Nについて「サンタ」と言及している人が一人の場合 ans1 = (pow_n2 - (pow(N - 3, N - 2, MOD) if N > 3 else 0)) % MOD ans1 *= N - 1 ans1 %= MOD answer += ans1 answer %= MOD ans = pow_n2 ans *= N - 1 ans %= MOD ans *= N - 2 ans %= MOD answer += ans answer %= MOD # Nについて「サンタ」と言及している人がいない場合 ans = (pow_n2 * (N - 2) ) % MOD ans *= N - 1 ans %= MOD answer += ans answer %= MOD answer *= N answer %= MOD print(answer) if __name__ == "__main__": main()