Submission #720653

#TimeUsernameProblemLanguageResultExecution timeMemory
720653LalicKamenčići (COCI21_kamencici)C++17
70 / 70
1 ms320 KiB
#include <bits/stdc++.h>
using namespace std;
 
#define fi first
#define se second
#define pb push_back
 
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;

const int MAXN = 2e5+10;

int main(){
  	ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);

    // freopen("shuffle.in","r",stdin);
    // freopen("shuffle.out","w",stdout);

    int n, k; cin >> n >> k;

	vector<char> arr(n+1);
	for(int i=1;i<=n;i++) cin >> arr[i];

	vector<int> qntR(n+1), qntL(n+2);
	qntR[0]=qntL[n+1]=0;

	for(int i=1;i<=n;i++){
		if(arr[i]=='C') qntR[i]=qntR[i-1]+1;
		else qntR[i]=0;
	}
	for(int i=n;i>=1;i--){
		if(arr[i]=='C') qntL[i]=qntL[i+1]+1;
		else qntL[i]=0;
	}

	int temp=0, l=1, r=n, antun=0, branka=0;
	while(l<=r){
		temp++;

		if(arr[l]=='P'){
			l++;
			continue;
		}
		else if(arr[r]=='P'){
			r--;
			continue;
		}

		if(temp%2==1) antun++;
		else branka++;

		if(antun>=k){
			cout << "NE\n";
			return 0;
		}
		else if(branka>=k){
			cout << "DA\n";
			return 0;
		}

		if(qntL[l]>=qntR[r]) l++;
		else r--;
	}

	cout << "DA\n";
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...