Submission #864834

#TimeUsernameProblemLanguageResultExecution timeMemory
864834epicci23Kamenčići (COCI21_kamencici)C++17
70 / 70
59 ms350800 KiB
#include "bits/stdc++.h" using namespace std; #define int long long #define endl '\n' #define all(x) (x).begin(),(x).end() #define pb push_back #define sz(x) ((int)(x).size()) int ar[355]; int dp[355][355][355]; int pre[355]; int suf[355]; int n,k; int f(int l,int r,int c){ int u = (l-1+n-r)&1; int c2 = pre[l-1] + suf[r+1] - c; if(c==k) return 0; if(c2==k) return 1; if(dp[l][r][c]!=-1) return dp[l][r][c]; int b=0,s=0; if(f(l+1,r,c+(u==0 && ar[l]))) b=1; else s=1; if(f(l,r-1,c+(u==0 && ar[r]))) b=1; else s=1; if(!u){ if(b) return dp[l][r][c]=1; return dp[l][r][c]=0; } if(s) return dp[l][r][c]=0; return dp[l][r][c]=1; } void solve(){ memset(dp,-1,sizeof(dp)); cin >> n >> k; string s; cin >> s; for(int i=1;i<=n;i++) ar[i]=(s[i-1]=='C'); pre[0]=0; for(int i=1;i<=n;i++) pre[i]=pre[i-1]+ar[i]; suf[n+1]=0; for(int i=n;i>=1;i--) suf[i]=suf[i+1]+ar[i]; int xd = f(1,n,0); if(xd) cout << "DA\n"; else cout << "NE\n"; } int32_t main(){ ios::sync_with_stdio(0); cin.tie(0); int t=1;//cin >> t; while(t--) solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...