提出 #59918206
ソースコード 拡げる
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ull unsigned long long
#define i128 __int128
#define pii pair<int, int>
#define pll pair<ll, ll>
#define all(x) (x).begin(), (x).end()
bool be;
constexpr int N = 2005, mod = 998244353;
int n, m, a[N], pre[N], pw[N][N], mn[N], mx[N];
bool en;
int main()
{
cerr << (&be - &en) / 1024.0 / 1024 << " MB\n----------------------------" << endl;
#ifdef IAKIOI
freopen("in.in", "r", stdin);
// freopen("out.out", "w", stdout);
#endif
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin >> n >> m;
for (int i = 0; i <= 2000; ++i) {
pw[i][0] = 1;
for (int j = 1; j <= 2000; ++j) {
pw[i][j] = (ll) pw[i][j - 1] * i % mod;
}
}
mn[0] = m + 1;
for (int i = 1; i <= n; ++i) {
cin >> a[i];
pre[i] = pre[i - 1] + (a[i] == -1);
mn[i] = min(mn[i - 1], a[i] == -1 ? m : a[i]);
}
mx[n + 1] = 0;
for (int i = n; i >= 1; --i) {
mx[i] = max(mx[i + 1], a[i] == -1 ? 1 : a[i]);
}
int ans = 0;
for (int i = 1; i <= n; ++i) {
for (int j = mx[i]; j <= m; ++j) {
if (j >= mn[i - 1]) continue;
ans = (ans + (ll) (pw[j][pre[n] - pre[i - 1]] - (j == mx[i] ? 0 : pw[j - 1][pre[n] - pre[i - 1]])) * pw[m - j][pre[i - 1]]) % mod;
}
}
cout << (ans + mod) % mod << endl;
return 0;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | B - Sum of CC |
| ユーザ | lfxxx |
| 言語 | C++ 17 (gcc 12.2) |
| 得点 | 600 |
| コード長 | 1311 Byte |
| 結果 | AC |
| 実行時間 | 67 ms |
| メモリ | 19580 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 600 / 600 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| 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, 01_test_18.txt, 01_test_19.txt, 01_test_20.txt, 01_test_21.txt, 01_test_22.txt, 01_test_23.txt, 01_test_24.txt, 01_test_25.txt, 01_test_26.txt, 01_test_27.txt, 01_test_28.txt, 01_test_29.txt, 01_test_30.txt, 01_test_31.txt, 01_test_32.txt, 01_test_33.txt, 01_test_34.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 00_sample_01.txt | AC | 22 ms | 19452 KiB |
| 00_sample_02.txt | AC | 22 ms | 19460 KiB |
| 00_sample_03.txt | AC | 22 ms | 19464 KiB |
| 01_test_01.txt | AC | 22 ms | 19292 KiB |
| 01_test_02.txt | AC | 22 ms | 19476 KiB |
| 01_test_03.txt | AC | 22 ms | 19496 KiB |
| 01_test_04.txt | AC | 22 ms | 19464 KiB |
| 01_test_05.txt | AC | 22 ms | 19508 KiB |
| 01_test_06.txt | AC | 22 ms | 19448 KiB |
| 01_test_07.txt | AC | 22 ms | 19456 KiB |
| 01_test_08.txt | AC | 22 ms | 19496 KiB |
| 01_test_09.txt | AC | 23 ms | 19500 KiB |
| 01_test_10.txt | AC | 22 ms | 19480 KiB |
| 01_test_11.txt | AC | 22 ms | 19440 KiB |
| 01_test_12.txt | AC | 22 ms | 19476 KiB |
| 01_test_13.txt | AC | 22 ms | 19464 KiB |
| 01_test_14.txt | AC | 22 ms | 19484 KiB |
| 01_test_15.txt | AC | 22 ms | 19476 KiB |
| 01_test_16.txt | AC | 22 ms | 19576 KiB |
| 01_test_17.txt | AC | 22 ms | 19580 KiB |
| 01_test_18.txt | AC | 22 ms | 19376 KiB |
| 01_test_19.txt | AC | 22 ms | 19456 KiB |
| 01_test_20.txt | AC | 22 ms | 19404 KiB |
| 01_test_21.txt | AC | 22 ms | 19348 KiB |
| 01_test_22.txt | AC | 22 ms | 19456 KiB |
| 01_test_23.txt | AC | 23 ms | 19444 KiB |
| 01_test_24.txt | AC | 24 ms | 19428 KiB |
| 01_test_25.txt | AC | 26 ms | 19456 KiB |
| 01_test_26.txt | AC | 23 ms | 19412 KiB |
| 01_test_27.txt | AC | 22 ms | 19444 KiB |
| 01_test_28.txt | AC | 23 ms | 19440 KiB |
| 01_test_29.txt | AC | 22 ms | 19292 KiB |
| 01_test_30.txt | AC | 22 ms | 19472 KiB |
| 01_test_31.txt | AC | 67 ms | 19468 KiB |
| 01_test_32.txt | AC | 22 ms | 19452 KiB |
| 01_test_33.txt | AC | 22 ms | 19360 KiB |
| 01_test_34.txt | AC | 22 ms | 19496 KiB |