제출 #655482

#제출 시각아이디문제언어결과실행 시간메모리
655482googleKamenčići (COCI21_kamencici)C++17
70 / 70
45 ms84956 KiB
#include<bits/stdc++.h>
using namespace std;
int n,k;
vector<vector<vector<int>>> dp;
string s;
bool solve(int l, int r, int cnt1,int cnt2){
    if (cnt1 >= k) return 0;
    if (cnt2 >= k) return 1;
    if (~dp[l][r][cnt1]) return dp[l][r][cnt1];
    if (!solve(l+1,r,cnt2,cnt1+(s[l]=='C')) || !solve(l,r-1,cnt2,cnt1+(s[r]=='C'))) return dp[l][r][cnt1] = 1;
    return dp[l][r][cnt1] = 0;
}
int main(){
    cin.tie(0)->sync_with_stdio(0);
    cin >> n >> k >> s;
    dp.resize(n,vector<vector<int>>(n,vector<int>(k,-1)));
    if (solve(0,n-1,0,0)) cout << "DA";
    else cout << "NE";
    return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

Main.cpp: In function 'bool solve(int, int, int, int)':
Main.cpp:10:107: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
   10 |     if (!solve(l+1,r,cnt2,cnt1+(s[l]=='C')) || !solve(l,r-1,cnt2,cnt1+(s[r]=='C'))) return dp[l][r][cnt1] = 1;
Main.cpp:11:27: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
   11 |     return dp[l][r][cnt1] = 0;
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...