Submission #60033005
Source Code Expand
#include <bits/stdc++.h>
#include <atcoder/all>
using namespace std;
using namespace atcoder;
#define ll long long
#define rep(i,r) for(ll i=0;(int)(i)<(int)(r);i++)
#define mint static_modint<mod>
#define vm(n,i) vector<mint>(n,i)
#define v2m(n,m,i) vector<vector<mint>>(n,vm(m,i))
#define v3m(n,m,k,i) vector<vector<vector<mint>>>(n,v2m(m,k,i))
#define v4m(n,m,k,l,i) vector<vector<vector<vector<mint>>>>(n,v3m(m,k,l,i))
#define v5m(n,m,k,l,o,i) vector<vector<vector<vector<vector<mint>>>>>(n,v4m(m,k,l,o,i))
#define riano_ std::ios::sync_with_stdio(false);std::cin.tie(nullptr)
const ll mod = 998244353;
tuple<ll,ll,ll,ll> next_state(ll x,ll a,ll b,ll c,ll n){
x ^= n;
if(x==1) a++;
else if(x==2) b++;
else if(x==3) c++;
return make_tuple(x,a,b,c);
}
int main(){
riano_; mint ans = 0;
ll N,K; cin >> N >> K;
string S; cin >> S;
auto dp = v5m(N+1,4,N+2,N+2,N+2,0); dp[0][0][0][0][0] = 1;
rep(i,N){
rep(x,4){
rep(a,N+1){
rep(b,N+1){
rep(c,N+1){
rep(n,3){
if(S[i]=='A'+n||S[i]=='?'){
auto[nx,na,nb,nc] = next_state(x,a,b,c,n+1);
dp[i+1][nx][na][nb][nc] += dp[i][x][a][b][c];
}
}
}
}
}
}
}
rep(x,4){
rep(a,N+1){
rep(b,N+1){
rep(c,N+1){
ll d = (N+1)-(a+b+c);
if(a*(a-1)/2+b*(b-1)/2+c*(c-1)/2+d*(d-1)/2>=K){
ans += dp[N][x][a][b][c];
}
}
}
}
}
cout << ans.val() << endl;
}
Submission Info
| Submission Time |
|
| Task |
A - ABC Symmetry |
| User |
riano_ |
| Language |
C++ 20 (gcc 12.2) |
| Score |
500 |
| Code Size |
1830 Byte |
| Status |
AC |
| Exec Time |
285 ms |
| Memory |
140468 KiB |
Judge Result
| Set Name |
Sample |
All |
| Score / Max Score |
0 / 0 |
500 / 500 |
| Status |
|
|
| Set Name |
Test Cases |
| Sample |
sample-01.txt, sample-02.txt, sample-03.txt |
| All |
in-01.txt, in-02.txt, in-03.txt, in-04.txt, in-05.txt, in-06.txt, in-07.txt, in-08.txt, in-09.txt, in-10.txt, in-11.txt, in-12.txt, in-13.txt, in-14.txt, in-15.txt, in-16.txt, in-17.txt, in-18.txt, in-19.txt, in-20.txt, in-21.txt, in-22.txt, in-23.txt, sample-01.txt, sample-02.txt, sample-03.txt |
| Case Name |
Status |
Exec Time |
Memory |
| in-01.txt |
AC |
1 ms |
3480 KiB |
| in-02.txt |
AC |
1 ms |
3476 KiB |
| in-03.txt |
AC |
213 ms |
140436 KiB |
| in-04.txt |
AC |
214 ms |
140372 KiB |
| in-05.txt |
AC |
212 ms |
104268 KiB |
| in-06.txt |
AC |
195 ms |
97860 KiB |
| in-07.txt |
AC |
55 ms |
29352 KiB |
| in-08.txt |
AC |
124 ms |
61716 KiB |
| in-09.txt |
AC |
63 ms |
34384 KiB |
| in-10.txt |
AC |
269 ms |
140376 KiB |
| in-11.txt |
AC |
269 ms |
140376 KiB |
| in-12.txt |
AC |
265 ms |
140404 KiB |
| in-13.txt |
AC |
264 ms |
140412 KiB |
| in-14.txt |
AC |
270 ms |
140412 KiB |
| in-15.txt |
AC |
267 ms |
140368 KiB |
| in-16.txt |
AC |
285 ms |
140436 KiB |
| in-17.txt |
AC |
260 ms |
140236 KiB |
| in-18.txt |
AC |
255 ms |
140376 KiB |
| in-19.txt |
AC |
272 ms |
140372 KiB |
| in-20.txt |
AC |
1 ms |
3524 KiB |
| in-21.txt |
AC |
81 ms |
50076 KiB |
| in-22.txt |
AC |
3 ms |
4980 KiB |
| in-23.txt |
AC |
17 ms |
12956 KiB |
| sample-01.txt |
AC |
1 ms |
3556 KiB |
| sample-02.txt |
AC |
284 ms |
140468 KiB |
| sample-03.txt |
AC |
1 ms |
3468 KiB |