結果
問題 |
No.3119 A Little Cheat
|
ユーザー |
|
提出日時 | 2025-04-19 10:29:24 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 915 bytes |
コンパイル時間 | 2,256 ms |
コンパイル使用メモリ | 195,384 KB |
実行使用メモリ | 7,848 KB |
最終ジャッジ日時 | 2025-04-19 10:29:30 |
合計ジャッジ時間 | 5,266 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | WA * 3 |
other | WA * 49 |
ソースコード
#include <bits/stdc++.h> using namespace std; static const int MOD = 998244353; // fast exponentiation: a^e mod MOD long long modpow(long long a, long long e=MOD-2) { long long r = 1; while (e) { if (e & 1) r = (r * a) % MOD; a = (a * a) % MOD; e >>= 1; } return r; } int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); int N; long long M; cin >> N >> M; vector<long long> A(N+1); for(int i = 1; i <= N; i++){ cin >> A[i]; } // Compute P = M^(N-1) mod MOD long long P = modpow(M % MOD, N-1); // Compute S = sum_{k=1..N-1} k * (M - A[k]) mod MOD long long S = 0; for(int k = 1; k < N; k++){ long long d = (M - A[k]) % MOD; if (d < 0) d += MOD; S = (S + d * k) % MOD; } // Answer = P * S mod MOD long long ans = (P * S) % MOD; cout << ans << "\n"; return 0; }