Submission #139590

#TimeUsernameProblemLanguageResultExecution timeMemory
139590mlyean00Bitaro the Brave (JOI19_ho_t1)C++17
100 / 100
458 ms160248 KiB
#ifdef DEBUG #include "debug.hpp" #else #pragma GCC optimize("Ofast") #define trace(...) #include <bits/stdc++.h> #define endl '\n' #endif using namespace std; using ll = long long; int main() { ios::sync_with_stdio(false); cin.tie(NULL); int h, w; cin >> h >> w; vector<string> grid(h); for (int i = 0; i < h; ++i) { cin >> grid[i]; } vector<vector<ll>> row_o(h + 1, vector<ll>(w + 1)); for (int i = 0; i < h; ++i) { for (int j = w - 1; j >= 0; --j) { row_o[i][j] = row_o[i][j + 1] + (grid[i][j] == 'O'); } } vector<vector<ll>> col_i(h + 1, vector<ll>(w + 1)); for (int j = 0; j < w; ++j) { for (int i = h - 1; i >= 0; --i) { col_i[i][j] = col_i[i + 1][j] + (grid[i][j] == 'I'); } } ll ans = 0; for (int i = 0; i < h; ++i) { for (int j = 0; j < w; ++j) { if (grid[i][j] != 'J') continue; ans += row_o[i][j] * col_i[i][j]; } } cout << ans << endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...