Submission #643984

#TimeUsernameProblemLanguageResultExecution timeMemory
643984elifKamenčići (COCI21_kamencici)C++17
0 / 70
79 ms182888 KiB
#include <bits/stdc++.h>
using namespace std;

#define N 360

int dp[N][N][N];
int red[N];
int n, k;

int f(int i, int j, int l){

	int m = red[n] - red[j] + red[i - 1] - l;
	
	if(l >= k)
		return 0;
	
	if(m >= k)
		return 1;
	
	if(dp[i][j][k] != -1)
		return dp[i][j][k];
	
	return dp[i][j][k] = !f(i + 1, j, m) || !f(i, j - 1, m);
}		

int main(){

	memset(dp, -1, sizeof(dp));

	string s;
	cin >> n >> k >> s;

	for(int i=1; i<=n; i++){
		red[i] = red[i - 1];
		if(s[i - 1] == 'C') red[i]++;
	}

	if(f(1, n, 0) == 1)
		cout << "DA" << endl;
	else cout << "NE" << endl;


	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...