Submission #436538

#TimeUsernameProblemLanguageResultExecution timeMemory
436538dariascBitaro the Brave (JOI19_ho_t1)C++14
100 / 100
541 ms88320 KiB
#include <bits/stdc++.h> using namespace std; int main() { int h, w; cin >> h >> w; char grid[h][w]; for (int i = 0; i < h; i++) { string s; cin >> s; for (int j = 0; j < w; j++) { grid[i][j] = s[j]; } } int orbs[h][w]; for (int i = 0; i < h; i++) { orbs[i][w-1] = grid[i][w-1] == 'O'; for (int j = w-2; j >= 0; j--) { orbs[i][j] = orbs[i][j+1] + (grid[i][j] == 'O'); } } int ingots[h][w]; for (int j = 0; j < w; j++) { ingots[h-1][j] = grid[h-1][j] == 'I'; for (int i = h-2; i >= 0; i--) { ingots[i][j] = ingots[i+1][j] + (grid[i][j] == 'I'); } } long long ans = 0; for (int i = 0; i < h-1; i++) { for (int j = 0; j < w-1; j++) { if (grid[i][j] != 'J') { continue; } ans += ingots[i+1][j] * orbs[i][j+1]; } } cout << ans << endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...