結果
問題 |
No.2683 Two Sheets
|
ユーザー |
![]() |
提出日時 | 2024-03-21 10:00:03 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 52 ms / 2,000 ms |
コード長 | 707 bytes |
コンパイル時間 | 2,488 ms |
コンパイル使用メモリ | 248,252 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-09-30 10:02:41 |
合計ジャッジ時間 | 3,553 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 13 |
ソースコード
#include <bits/stdc++.h> #include <atcoder/modint> using namespace std; using ll = long long; using mint = atcoder::modint998244353; int H, W, A, B; int main(void){ ios::sync_with_stdio(false); cin.tie(nullptr); cin >> H >> W >> A >> B; mint h = 0, w = 0; for(int i = 1;i <= H;i++){ mint p = min(H - A + 1, i) - max(1, i - A + 1) + 1; mint q = H - A + 1; mint v = p / q; h += v * v; } for(int i = 1;i <= W;i++){ mint p = min(W - B + 1, i) - max(1, i - B + 1) + 1; mint q = W - B + 1; mint v = p / q; w += v * v; } mint ans = mint::raw(2) * A * B - h * w; cout << ans.val() << endl; return 0; }