結果
問題 | No.2631 Rectangle Grid Game |
ユーザー |
|
提出日時 | 2024-02-11 14:21:23 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 1,334 bytes |
コンパイル時間 | 2,538 ms |
コンパイル使用メモリ | 191,036 KB |
最終ジャッジ日時 | 2025-02-19 05:05:24 |
ジャッジサーバーID (参考情報) |
judge4 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 6 WA * 24 |
ソースコード
#include "bits/stdc++.h"using namespace std;#define REP(i, n) for(ll i = 0;i < n;i++)#define REPR(i, n) for(ll i = n;i >= 0;i--)#define FOR(i, m, n) for(ll i = m;i < n;i++)#define FORR(i, m, n) for(ll i = m;i >= n;i--)#define REPO(i, n) for(ll i = 1;i <= n;i++)#define ll long long#define INF (ll)1ll << 60#define MINF (-1 * INF)#define ALL(n) n.begin(),n.end()#define MOD (ll)1000000007#define P pair<ll, ll>ll H, W, mod = 998244353;ll sum(ll n){n %= mod;return n * (n + 1) / 2 % mod;}ll solve1(ll x, ll y){//Σ HW - (A - i)(B - j)ll A, B;A = (H % 2 == 1 ? (H + 3) / 2 : (H + 4) / 2);B = (W % 2 == 1 ? (W + 3) / 2 : (W + 4) / 2);ll res = 0;res += (H * W - A * B) % mod * x % mod * y % mod;res += B * sum(x) * y % mod;res += A * sum(y) * x % mod;res -= sum(x) * sum(y) % mod;res = (res % mod + mod) % mod;return res;}ll solve2(){if(H % 2 == 1 and W % 2 == 1){ll ans = 0;REP(i, 2)REP(j, 2) ans += solve1((H + i) / 2, (W + j) / 2);return ans % mod;}if(H % 2 == 0 and W % 2 == 0){return solve1(H / 2, W / 2) * 4 % mod;}if(H % 2 == 0)swap(H, W);return (2 * solve1((H + 1) / 2, W / 2) + 2 * solve1(H / 2, W / 2)) % mod;}int main(){cin >> H >> W;cout << solve2() << endl;}