Submission #60498636
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
int cnt[8];
int dp[55][55][55][55][4];
int n, k;
string s;
const int MOD = (119 << 23) + 1;
int fnCnt(int cnt) {return cnt * (cnt - 1) / 2;}
int transform(int val, char c) {
return val ^ (1 << (c - 'A'));
}
int solve(int index, int cur) {
if (cur & 1) cur ^= 7;
cnt[cur] += 1;
int &ret = dp[cnt[0]][cnt[2]][cnt[6]][cnt[4]][cur/2];
if (ret == -1) {
if (index == n) {
ret = (fnCnt(cnt[0]) + fnCnt(cnt[2]) + fnCnt(cnt[4]) + fnCnt(cnt[6]) >= k);
} else {
ret = 0;
for (char c = 'A';c <= 'C';c++) {
if (s[index] == c|| s[index] == '?') {
ret = (ret + solve(index + 1, transform(cur, c))) % MOD;
}
}
}
}
cnt[cur] -= 1;
return ret;
}
void doWork() {
cin >> n >> k >> s;
memset(dp, -1, sizeof(dp));
cout << solve(0, 0) << endl;
}
int main() {
int t = 1;
// cin >> t;
while (t--) {
doWork();
}
}
Submission Info
| Submission Time | |
|---|---|
| Task | A - ABC Symmetry |
| User | triplem5ds |
| Language | C++ 20 (gcc 12.2) |
| Score | 500 |
| Code Size | 1082 Byte |
| Status | AC |
| Exec Time | 70 ms |
| Memory | 146560 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 | 56 ms | 146356 KiB |
| in-02.txt | AC | 55 ms | 146364 KiB |
| in-03.txt | AC | 56 ms | 146372 KiB |
| in-04.txt | AC | 56 ms | 146476 KiB |
| in-05.txt | AC | 67 ms | 146416 KiB |
| in-06.txt | AC | 67 ms | 146368 KiB |
| in-07.txt | AC | 59 ms | 146344 KiB |
| in-08.txt | AC | 62 ms | 146560 KiB |
| in-09.txt | AC | 61 ms | 146376 KiB |
| in-10.txt | AC | 64 ms | 146432 KiB |
| in-11.txt | AC | 66 ms | 146376 KiB |
| in-12.txt | AC | 62 ms | 146308 KiB |
| in-13.txt | AC | 65 ms | 146556 KiB |
| in-14.txt | AC | 65 ms | 146380 KiB |
| in-15.txt | AC | 64 ms | 146368 KiB |
| in-16.txt | AC | 70 ms | 146340 KiB |
| in-17.txt | AC | 60 ms | 146240 KiB |
| in-18.txt | AC | 59 ms | 146400 KiB |
| in-19.txt | AC | 67 ms | 146476 KiB |
| in-20.txt | AC | 56 ms | 146384 KiB |
| in-21.txt | AC | 56 ms | 146404 KiB |
| in-22.txt | AC | 56 ms | 146392 KiB |
| in-23.txt | AC | 56 ms | 146240 KiB |
| sample-01.txt | AC | 57 ms | 146340 KiB |
| sample-02.txt | AC | 70 ms | 146408 KiB |
| sample-03.txt | AC | 56 ms | 146404 KiB |