Submission #890624

#TimeUsernameProblemLanguageResultExecution timeMemory
890624serifefedartarKamenčići (COCI21_kamencici)C++17
70 / 70
46 ms183164 KiB
#include <bits/stdc++.h>
using namespace std;

#define fast ios::sync_with_stdio(0);cin.tie(0);
typedef long long ll;
#define f first
#define s second
#define MOD 998244353
#define LOGN 21
#define MAXN 360

int n, k, dp[MAXN][MAXN][MAXN], pref[MAXN];
string s;
bool solve(int l, int r, int K) {
	if (dp[l][r][K] != -1)
		return dp[l][r][K];
	if (K >= k)
		return dp[l][r][K] = 0;
	if (pref[n] - pref[r] + pref[l-1] - K >= k)
		return dp[l][r][K] = 1;

	if ((n - (r - l + 1)) % 2)
		return dp[l][r][K] = solve(l+1, r, K) && solve(l, r-1, K);
	return dp[l][r][K] = solve(l+1, r, K + (s[l] == 'C')) || solve(l, r-1, K + (s[r] == 'C'));
}

int main() {
	fast
	memset(dp, -1, sizeof(dp));
	cin >> n >> k >> s;
	s = "#" + s;

	for (int i = 1; i <= n; i++)
		pref[i] = pref[i-1] + (s[i] == 'C');
	if (solve(1, n, 0))
		cout << "DA\n";
	else
		cout << "NE\n";
}

Compilation message (stderr)

Main.cpp: In function 'bool solve(int, int, int)':
Main.cpp:18:22: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
   18 |   return dp[l][r][K] = 0;
      |          ~~~~~~~~~~~~^~~
Main.cpp:20:22: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
   20 |   return dp[l][r][K] = 1;
      |          ~~~~~~~~~~~~^~~
Main.cpp:23:22: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
   23 |   return dp[l][r][K] = solve(l+1, r, K) && solve(l, r-1, K);
      |          ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Main.cpp:24:21: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
   24 |  return dp[l][r][K] = solve(l+1, r, K + (s[l] == 'C')) || solve(l, r-1, K + (s[r] == 'C'));
      |         ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...