提出 #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
結果
AC × 3
AC × 37
セット名 テストケース
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