제출 #303142

#제출 시각아이디문제언어결과실행 시간메모리
303142jainbot27Dango Maker (JOI18_dango_maker)C++17
13 / 100
1 ms512 KiB
#include <bits/stdc++.h> using namespace std; const int mxN = 6002; int n, m, ans = 0, dp[mxN][3]; bool g[mxN][mxN]; string s[mxN]; string c = "RGW"; inline bool okay(int x, int y, char k){ return (x >= 0 && y >= 0 && x < n && y < m && s[x][y] == k); } int32_t main(){ cin >> n >> m; for(int i=0; i < n; i++){ cin >> s[i]; } for(int k = 0; k < n + m; k++){ for(int i = 0; i <= min(k, n); i++){ int j=k-i; dp[i+1][0] = max({dp[i][0], dp[i][1], dp[i][2]}); dp[i+1][1] = max(dp[i][1], dp[i][0]) + (okay(i, j, 'G') && okay(i-1, j, 'R') && okay(i+1, j, 'W')); dp[i+1][2] = max(dp[i][2], dp[i][0]) + (okay(i, j, 'G') && okay(i, j-1, 'R') && okay(i, j+1, 'W')); } ans +=max({dp[k+1][0], dp[k+1][1], dp[k+2][2]}); } cout << ans << "\n"; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...