Submission #66209111


Source Code Expand

#include <bits/stdc++.h>
#define rep(i,n) for(int i=0;i<(n);i++)
#include"atcoder/all"
using namespace atcoder;
typedef modint998244353 mi;
using namespace std;
#define all(a) a.begin(),a.end()
#define compress(a) sort(all(a));a.erase(unique(all(a)),a.end())
typedef long long ll;
typedef pair<ll,ll> P;
constexpr ll mod=998244353;
constexpr ll inf=3e18;

modint dp[102][102][102][102];

int main(){
	ll n,K,p;
	cin>>n>>K>>p;
	modint::set_mod(p);
	dp[0][0][0][0]=1;

	for(int i=0;i<n-1;i++){
		for(int j=0;j<=i;j++){
			for(int k=0;k<=i;k++){
				for(int l=0;l<=i;l++){
					dp[i+1][0][0][l+1]+=dp[i][j][k][l];
					dp[i+1][j+1][0][l+1]-=dp[i][j][k][l];
					dp[i+1][0][k+1][l+1]-=dp[i][j][k][l];
					dp[i+1][j+1][k+1][l+1]+=2*dp[i][j][k][l];
					dp[i+1][j+1][i+2][l+1]-=dp[i][j][k][l];
					dp[i+1][i+2][k+1][l+1]-=dp[i][j][k][l];
					dp[i+1][i+2][i+2][l+1]+=dp[i][j][k][l];
					dp[i+1][j+1][0][l]+=dp[i][j][k][l];
					dp[i+1][j+1][k+1][l]-=dp[i][j][k][l];
					dp[i+1][i+2][0][l]-=dp[i][j][k][l];
					dp[i+1][i+2][k+1][l]+=dp[i][j][k][l];
					dp[i+1][0][k+1][l]+=dp[i][j][k][l];
					dp[i+1][0][i+2][l]-=dp[i][j][k][l];
					dp[i+1][j+1][k+1][l]-=dp[i][j][k][l];
					dp[i+1][j+1][i+2][l]+=dp[i][j][k][l];
				}
			}
		}
		for(int j=0;j<=i;j++){
			for(int k=0;k<=i+1;k++){
				for(int l=0;l<=i+1;l++){
					dp[i+1][j+1][k][l]+=dp[i+1][j][k][l];
				}
			}
		}
		for(int j=0;j<=i+1;j++){
			for(int k=0;k<=i;k++){
				for(int l=0;l<=i+1;l++){
					dp[i+1][j][k+1][l]+=dp[i+1][j][k][l];
				}
			}
		}
	}

	modint ans=0;
	rep(j,n){
		rep(k,n){
			ans+=dp[n-1][j][k][K];
		}
	}
	cout<<ans.val()<<endl;

}

Submission Info

Submission Time
Task G - Similar Permutation
User Rho17
Language C++ 20 (gcc 12.2)
Score 600
Code Size 1678 Byte
Status AC
Exec Time 588 ms
Memory 426532 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 600 / 600
Status
AC × 2
AC × 20
Set Name Test Cases
Sample 00_sample_01.txt, 00_sample_02.txt
All 00_sample_01.txt, 00_sample_02.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
Case Name Status Exec Time Memory
00_sample_01.txt AC 169 ms 426388 KiB
00_sample_02.txt AC 196 ms 426528 KiB
01_test_01.txt AC 171 ms 426396 KiB
01_test_02.txt AC 169 ms 426304 KiB
01_test_03.txt AC 588 ms 426384 KiB
01_test_04.txt AC 587 ms 426340 KiB
01_test_05.txt AC 586 ms 426396 KiB
01_test_06.txt AC 177 ms 426464 KiB
01_test_07.txt AC 170 ms 426388 KiB
01_test_08.txt AC 221 ms 426396 KiB
01_test_09.txt AC 333 ms 426416 KiB
01_test_10.txt AC 453 ms 426396 KiB
01_test_11.txt AC 448 ms 426348 KiB
01_test_12.txt AC 554 ms 426300 KiB
01_test_13.txt AC 525 ms 426400 KiB
01_test_14.txt AC 460 ms 426532 KiB
01_test_15.txt AC 524 ms 426392 KiB
01_test_16.txt AC 504 ms 426336 KiB
01_test_17.txt AC 532 ms 426344 KiB
01_test_18.txt AC 476 ms 426380 KiB