제출 #303145

#제출 시각아이디문제언어결과실행 시간메모리
303145jainbot27Dango Maker (JOI18_dango_maker)C++17
100 / 100
615 ms12068 KiB
#include <bits/stdc++.h> using namespace std; const int mxN = 6002; int n, m, ans, dp[mxN][3]; string s[mxN]; inline bool ok(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, k); 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]) + (ok(i, j, 'G') && ok(i-1, j, 'R') && ok(i+1, j, 'W')); dp[i+1][2] = max(dp[i][2], dp[i][0]) + (ok(i, j, 'G') && ok(i, j-1, 'R') && ok(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...