Submission #1362182

#TimeUsernameProblemLanguageResultExecution timeMemory
1362182kamal618Kamenčići (COCI21_kamencici)C++20
70 / 70
138 ms338932 KiB
/*بِسْمِ اللَّهِ الرَّحْمَنِ الرَّحِيمِ*/
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
typedef vector<ll> vll;
typedef pair<int, int> pii;
#define pb push_back
#define pp pop_back
//#define endl "\n"
#define mpp make_pair
#define fi first
#define se second
#define all(v) v.begin(), v.end()
#define sz(x) ((ll)(x).size())
#define vecpri(vec) for(auto i:vec) cout<<i<<' ';
#define yes cout<<"YES\n"
#define no cout<<"NO\n"
#define ali cout<<"Alice\n"
#define bob cout<<"Bob\n"
#define forr(i,a,b) for (int i = (a); i < (b); i++)
#define rep(i,n) forr(i, 0, n)
#define pri(n) rep(i,n) cout<<b[i]<<' ';
#define geta(n) rep(i,n) cin>>a[i];
#define gcd __gcd
#define fast ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
const int N = 1e6+9;
const ll inf = 1e18;
const ll mod = 1e9+7;
set<ll>st;
ll n,c,k,p,m,q,h,ans,cnt=0,mx;	string s;ll dp[351][351][351];
bool sollve(ll l,ll r,ll sum1,ll sum2){
	if (sum1>=k) return 0;
	if (sum2>=k) return 1;
	if(dp[l][r][sum1]!=-1) return dp[l][r][sum1];
	bool try1=!(sollve(l+1,r,sum2,sum1+(s[l]=='C')));
	bool try2=!(sollve(l,r-1,sum2,sum1+(s[r]=='C')));
	return (dp[l][r][sum1]=(try1||try2));
}
void solve() {
	cin>>n>>k>>s;
	memset(dp,-1,sizeof(dp));
	if(sollve(0,n-1,0,0)) cout<<"DA\n";
	else cout<<"NE\n";
}
int main() {
	fast;
    ll t=1;//cin>>t;
    while (t--)solve();
    return 0;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...