제출 #1066139

#제출 시각아이디문제언어결과실행 시간메모리
1066139MalixDango Maker (JOI18_dango_maker)C++14
33 / 100
274 ms744 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef vector<int> vi; typedef vector<vi> vii; typedef pair<int,int> pi; typedef vector<pi> pii; typedef tuple<int,int,int> tii; typedef vector<ll> li; typedef vector<li> lii; #define REP(i,a,b) for(int i=a;i<b;i++) #define F first #define S second #define PB push_back #define MP make_pair #define LSOne(s) ((s)&(-s)) ll INF=1000000000000000010; int inf=1e9+10; ll M=1e9+7; int main() { int n,m;cin>>n>>m; vector<vector<char>> a(n,vector<char>(m)); REP(i,0,n)REP(j,0,m)cin>>a[i][j]; int ans=0; REP(j,0,n+m){ vii dp(n+1,vi(3,0)); REP(i,0,n){ int pos=j-i; dp[i+1][0]=max({dp[i][0],dp[i][1],dp[i][2]}); if(pos>=m||a[i][pos]!='G')continue; if(pos-1>=0&&pos+1<m&&a[i][pos-1]=='R'&&a[i][pos+1]=='W')dp[i+1][1]=max(dp[i][0],dp[i][1])+1; if(i-1>=0&&i+1<n&&a[i-1][pos]=='R'&&a[i+1][pos]=='W')dp[i+1][2]=max(dp[i][0],dp[i][2])+1; } int mx=0; REP(i,0,n+1)mx=max(mx,max({dp[i][0],dp[i][1],dp[i][2]})); ans+=mx; } cout<<ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...