Submission #1340500

#TimeUsernameProblemLanguageResultExecution timeMemory
1340500Zone_zoneeKamenčići (COCI21_kamencici)C++20
70 / 70
118 ms250936 KiB
#include <bits/stdc++.h>
using namespace std;
const int N = 400;

int dp[N][N][N];
int qs[N];
int n, k;
string s;
int sol(int l, int r, int cur){
    if(dp[l][r][cur] != -1) return dp[l][r][cur];
    if(qs[n] - (qs[r] - qs[l-1]) - cur >= k) return dp[l][r][cur] = 1;
    return dp[l][r][cur] = (
        !sol(l+1, r, qs[n] - (qs[r] - qs[l-1]) - cur) ||
        !sol(l, r-1, qs[n] - (qs[r] - qs[l-1]) - cur)
    );
}
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    cin >> n >> k >> s;
    s = '.' + s;
    for(int i = 1; i <= n; ++i) qs[i] = qs[i-1] + (s[i] == 'C');
    memset(dp, 0xff, sizeof dp);
    bool ok = sol(1, n, 0);
    cout << (ok ? "DA\n" : "NE\n");
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...