Submission #394594

#TimeUsernameProblemLanguageResultExecution timeMemory
394594benedict0724Bitaro the Brave (JOI19_ho_t1)C++17
100 / 100
420 ms114884 KiB
#include <iostream> using namespace std; int v[3002][3002]; int dp[3002][3002]; int dp2[3002][3002]; int main() { ios::sync_with_stdio(false); cin.tie(NULL); int H, W; cin >> H >> W; for(int i=1;i<=H;i++) { string s; cin >> s; for(int j=1;j<=W;j++) { if(s[j-1] == 'J') v[i][j] = 1; if(s[j-1] == 'O') v[i][j] = 2; if(s[j-1] == 'I') v[i][j] = 3; } } for(int i=1;i<=H;i++) { for(int j=W;j>=1;j--) { dp[i][j] = dp[i][j+1]; if(v[i][j] == 2) dp[i][j]++; } } for(int j=1;j<=W;j++) { for(int i=H;i>=1;i--) { dp2[i][j] = dp2[i+1][j]; if(v[i][j] == 3) dp2[i][j]++; } } long long int ans = 0; for(int i=1;i<=H;i++) { for(int j=1;j<=W;j++) { if(v[i][j] == 1) ans += dp[i][j] * dp2[i][j]; } } cout << ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...