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
AC × 3
AC × 26
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