Submission #59914541


Source Code Expand

#include<bits/stdc++.h>
#define fo(i,l,r) for(int i=l;i<=r;++i)
#define fd(i,r,l) for(int i=r;i>=l;--i)
#define ll long long
#define I inline int
#define V inline void
#define B inline bool
#define L inline ll
#define pi pair<int,int>
#define mk make_pair
#define fi first
#define se second
#define pb push_back
#define vi vector<int>
#define vii vector<pi>
using namespace std;
const int N=2010,mod=998244353;
char St;
I read() {
	int x=0,y=1;char c=getchar();
	while(c<48||c>57) {if(c==45)y=-y;c=getchar();}
	while(c>=48&&c<=57) x=(x<<1)+(x<<3)+(c^48),c=getchar();
	return x*y;
}
int n,m,a[N],tot;
ll ans;
L ksm(ll x,int y) {
	ll t(1);for(;y;y>>=1,x=x*x%mod) if(y&1)t=t*x%mod;return t;
}
V check() {
	++tot;
	a[0]=m+1;
	fo(i,1,n) {
		int mx(0),mn(m+1);
		fo(j,0,i-1) mn=min(mn,a[j]);
		fo(j,i,n) mx=max(mx,a[j]);
		if(mn>mx) ans++;
	}
}
V dfs(int x) {
	if(x>n) {
		check();return ;
	}
	if(a[x]!=-1) dfs(x+1);
	else {
		fo(i,1,m) a[x]=i,dfs(x+1),a[x]=-1;
	}
}
char Ed;
int main() {
	cerr<<"memory:"<<(&St-&Ed)/1024.0<<endl;
	n=read();m=read();
	fo(i,1,n) a[i]=read();
//	dfs(1);
	a[0]=m+1;
	fo(i,1,n) {
		int las(0),mn=m+1,sl(0),mx(0),sr(0);
		fo(j,0,i-1) if(a[j]!=-1) mn=min(mn,a[j]);else sl++;
		fo(j,i,n) if(a[j]!=-1) mx=max(mx,a[j]);else sr++;
//		printf("!! %d %d %d %d\n",mn,mx,sl,sr);
		fd(j,mn,mx+1) {
			ll now=ksm(m-j+1,sl);
			ans+=(now-las)*ksm(j-1,sr)%mod;
			las=now;
		}
//		printf("%d\n",ans);
	}
	printf("%lld\n",(ans%mod+mod)%mod);
	cerr<<"time:"<<clock()<<endl;
	return 0;
}

Submission Info

Submission Time
Task B - Sum of CC
User OIer2008
Language C++ 20 (gcc 12.2)
Score 600
Code Size 1568 Byte
Status AC
Exec Time 217 ms
Memory 3920 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 600 / 600
Status
AC × 3
AC × 37
Set Name Test Cases
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
Case Name Status Exec Time Memory
00_sample_01.txt AC 1 ms 3808 KiB
00_sample_02.txt AC 1 ms 3840 KiB
00_sample_03.txt AC 1 ms 3836 KiB
01_test_01.txt AC 3 ms 3916 KiB
01_test_02.txt AC 3 ms 3884 KiB
01_test_03.txt AC 3 ms 3804 KiB
01_test_04.txt AC 4 ms 3808 KiB
01_test_05.txt AC 3 ms 3848 KiB
01_test_06.txt AC 4 ms 3752 KiB
01_test_07.txt AC 4 ms 3776 KiB
01_test_08.txt AC 4 ms 3688 KiB
01_test_09.txt AC 4 ms 3920 KiB
01_test_10.txt AC 3 ms 3820 KiB
01_test_11.txt AC 4 ms 3700 KiB
01_test_12.txt AC 4 ms 3688 KiB
01_test_13.txt AC 3 ms 3884 KiB
01_test_14.txt AC 3 ms 3800 KiB
01_test_15.txt AC 3 ms 3816 KiB
01_test_16.txt AC 3 ms 3808 KiB
01_test_17.txt AC 3 ms 3808 KiB
01_test_18.txt AC 1 ms 3880 KiB
01_test_19.txt AC 1 ms 3852 KiB
01_test_20.txt AC 1 ms 3688 KiB
01_test_21.txt AC 1 ms 3776 KiB
01_test_22.txt AC 1 ms 3768 KiB
01_test_23.txt AC 5 ms 3884 KiB
01_test_24.txt AC 5 ms 3748 KiB
01_test_25.txt AC 19 ms 3856 KiB
01_test_26.txt AC 3 ms 3812 KiB
01_test_27.txt AC 3 ms 3784 KiB
01_test_28.txt AC 4 ms 3816 KiB
01_test_29.txt AC 3 ms 3828 KiB
01_test_30.txt AC 3 ms 3880 KiB
01_test_31.txt AC 217 ms 3852 KiB
01_test_32.txt AC 1 ms 3696 KiB
01_test_33.txt AC 1 ms 3864 KiB
01_test_34.txt AC 3 ms 3756 KiB