Submission #686423

# Submission time Handle Problem Language Result Execution time Memory
686423 2023-01-25T09:15:56 Z willychan Kamenčići (COCI21_kamencici) C++14
70 / 70
22 ms 27720 KB
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
//#include<bits/extc++.h>
//__gnu_pbds
int n,k;
string s;
bool dp[355][355][355];
bool vis[355][355][355];
int rs[355];
bool DP(int l,int r,int g){
	if(r<l) {
		assert(1==0);
		return 0;
	}
	if(vis[l][r][g]) return dp[l][r][g];	
	vis[l][r][g]=1;
	if(g==k-1 && s[l]=='C' && s[r]=='C'){
		dp[l][r][g] = 0;
		return dp[l][r][g];
	}
	int other = rs[l-1]+rs[n]-rs[r]-g;
	if(g==k-1 && s[l]=='C'){
		dp[l][r][g] = !DP(l,r-1,other);
		return dp[l][r][g];
	}
	if(g==k-1 && s[r]=='C'){
		dp[l][r][g] = !DP(l+1,r,other);
		return dp[l][r][g];
	}
	if(DP(l+1,r,other) && DP(l,r-1,other)){
		dp[l][r][g] = 0;
		return dp[l][r][g];
	}else{
		dp[l][r][g]=1;
		return dp[l][r][g];
	}
}


int main(){
	ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	cin>>n>>k;		
	cin>>s;
	s = " "+s;
	for(int i=1;i<=n;i++){
		rs[i] =rs[i-1]+(s[i]=='C');
	}
	if(DP(1,n,0)) cout<<"DA\n";
	else cout<<"NE\n";
	return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 340 KB Output is correct
2 Correct 1 ms 456 KB Output is correct
3 Correct 1 ms 340 KB Output is correct
4 Correct 1 ms 468 KB Output is correct
5 Correct 1 ms 468 KB Output is correct
6 Correct 0 ms 340 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 340 KB Output is correct
2 Correct 1 ms 456 KB Output is correct
3 Correct 1 ms 340 KB Output is correct
4 Correct 1 ms 468 KB Output is correct
5 Correct 1 ms 468 KB Output is correct
6 Correct 0 ms 340 KB Output is correct
7 Correct 1 ms 584 KB Output is correct
8 Correct 1 ms 328 KB Output is correct
9 Correct 1 ms 852 KB Output is correct
10 Correct 1 ms 460 KB Output is correct
11 Correct 1 ms 712 KB Output is correct
12 Correct 1 ms 980 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 340 KB Output is correct
2 Correct 1 ms 456 KB Output is correct
3 Correct 1 ms 340 KB Output is correct
4 Correct 1 ms 468 KB Output is correct
5 Correct 1 ms 468 KB Output is correct
6 Correct 0 ms 340 KB Output is correct
7 Correct 1 ms 584 KB Output is correct
8 Correct 1 ms 328 KB Output is correct
9 Correct 1 ms 852 KB Output is correct
10 Correct 1 ms 460 KB Output is correct
11 Correct 1 ms 712 KB Output is correct
12 Correct 1 ms 980 KB Output is correct
13 Correct 1 ms 1236 KB Output is correct
14 Correct 22 ms 27720 KB Output is correct
15 Correct 7 ms 10452 KB Output is correct
16 Correct 21 ms 25680 KB Output is correct
17 Correct 16 ms 26996 KB Output is correct
18 Correct 9 ms 12628 KB Output is correct