提出 #41103973
ソースコード 拡げる
#include <atcoder/all>
using namespace atcoder;
#include <bits/stdc++.h>
#include <cassert>
using namespace std;
using ll = long long;
const double pi = 3.14159265359;
const ll INF = 1LL << 60;
template<class T> inline bool chmin(T& a, T b){ if (a > b){a = b; return true;} return false;}
template<class T> inline bool chmax(T& a, T b){ if (a < b){a = b; return true;} return false;}
using mint = modint998244353;
//using mint = modint1000000007;
//using mint = modint; // mint::set_mod(p); later
//using mint = static_modint<1000000009>;
bool init = false;
mint fact[1000006];
// nCr : n 個のマスから r 個選ぶ選び方
mint comb(int n, int r){
return fact[n] / fact[n - r] / fact[r];
}
int H, W, K;
map<pair<int, int>, mint> mp;
vector<mint> buf;
mint f(int h, int w){
if (h * w < K || h < 0 || w < 0) return 0;
return mint(buf[h*w]);
}
mint g(int h, int w){
mint ans =
f(h, w)
- (f(h-1, w) + f(h-1, w) + f(h, w-1) + f(h, w-1)
- f(h-1, w-1) - f(h-2, w) - f(h-1,w-1) - f(h-1, w-1) - f(h, w-2) - f(h-1, w-1)
+ f(h-1, w-2) + f(h-2, w-1) + f(h-1, w-2) + f(h-2, w-1)
- f(h-2, w-2)
);
return ans;
}
int main()
{
cin.tie(0); cout.tie(0); ios::sync_with_stdio(false);
cin >> H >> W >> K;
// Init tables
fact[0] = 1;
for (int i = 1; i <= 1000000; i++){
fact[i] = fact[i - 1] * i;
}
buf.resize(H*W+1);
for (int i = K; i <= H*W; i++){
buf[i] = comb(i, K);
}
mint ans = 0;
for (int y = 1; y <= H; y++){
ll ny = H - y + 1;
for (int x = 1; x <= W; x++){
ll nx = W - x + 1;
int area = y * x;
if (area >= K){
ans += ny * nx * area * g(y, x) / f(H, W);
}
}
}
cout << ans.val() << endl;
return 0;
}
提出情報
ジャッジ結果
| セット名 |
Sample |
All |
| 得点 / 配点 |
0 / 0 |
500 / 500 |
| 結果 |
|
|
| セット名 |
テストケース |
| Sample |
00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt |
| All |
00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 01_test_09.txt, 01_test_10.txt, 01_test_11.txt, 01_test_12.txt, 01_test_13.txt, 01_test_14.txt, 01_test_15.txt, 01_test_16.txt, 01_test_17.txt |
| ケース名 |
結果 |
実行時間 |
メモリ |
| 00_sample_01.txt |
AC |
15 ms |
7444 KiB |
| 00_sample_02.txt |
AC |
14 ms |
7544 KiB |
| 00_sample_03.txt |
AC |
26 ms |
7516 KiB |
| 01_test_01.txt |
AC |
12 ms |
7536 KiB |
| 01_test_02.txt |
AC |
13 ms |
7488 KiB |
| 01_test_03.txt |
AC |
15 ms |
11108 KiB |
| 01_test_04.txt |
AC |
349 ms |
11080 KiB |
| 01_test_05.txt |
AC |
348 ms |
11092 KiB |
| 01_test_06.txt |
AC |
356 ms |
11092 KiB |
| 01_test_07.txt |
AC |
205 ms |
10580 KiB |
| 01_test_08.txt |
AC |
261 ms |
10196 KiB |
| 01_test_09.txt |
AC |
30 ms |
10572 KiB |
| 01_test_10.txt |
AC |
102 ms |
10880 KiB |
| 01_test_11.txt |
AC |
75 ms |
10472 KiB |
| 01_test_12.txt |
AC |
144 ms |
8704 KiB |
| 01_test_13.txt |
AC |
239 ms |
9820 KiB |
| 01_test_14.txt |
AC |
129 ms |
8456 KiB |
| 01_test_15.txt |
AC |
170 ms |
8880 KiB |
| 01_test_16.txt |
AC |
91 ms |
8044 KiB |
| 01_test_17.txt |
AC |
157 ms |
8724 KiB |