Submission #1050467

#TimeUsernameProblemLanguageResultExecution timeMemory
1050467vjudge1Dango Maker (JOI18_dango_maker)C++17
100 / 100
316 ms230232 KiB
#include<algorithm> #include<iostream> #include<vector> #include<queue> #include<set> using namespace std; #define ll long long const ll maxn=3011; ll n,m,dp[maxn][maxn][3]; char c[maxn][maxn]; bool hor(ll i,ll j){ return (c[i][j-1]=='R' and c[i][j]=='G' and c[i][j+1]=='W'); } bool ver(ll i,ll j){ return (c[i-1][j]=='R' and c[i][j]=='G' and c[i+1][j]=='W'); } int main(){ cin>>n>>m; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ cin>>c[i][j]; } } for(ll i=1;i<=n;i++){ for(ll j=1;j<=m;j++){ dp[i][j][0]=max({dp[i-1][j+1][0],dp[i-1][j+1][1],dp[i-1][j+1][2]}); dp[i][j][1]=max(dp[i-1][j+1][0],dp[i-1][j+1][1])+hor(i,j); dp[i][j][2]=max(dp[i-1][j+1][0],dp[i-1][j+1][2])+ver(i,j); } } ll ans=0; for(ll i=1;i<=n;i++){ ans+=max(dp[i][1][0],max(dp[i][1][1],dp[i][1][2])); } for(ll j=2;j<=m;j++){ ans+=max(dp[n][j][0],max(dp[n][j][1],dp[n][j][2])); } cout<<ans; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...