Submission #1308459

#TimeUsernameProblemLanguageResultExecution timeMemory
1308459pobeBitaro the Brave (JOI19_ho_t1)C++20
100 / 100
186 ms151408 KiB
#include <bits/stdc++.h> using namespace std; using ull = unsigned long long; #define int long long void solve() { int n, m; cin >> n >> m; vector <string> val(n); for (int i = 0; i < n; ++i) { cin >> val[i]; } int ans = 0; vector <vector <int>> up(n, vector <int> (m)); vector <vector <int>> left(n, vector <int> (m)); for (int i = 0; i < n; ++i) { for (int j = m - 2;j >= 0; --j) { left[i][j] = left[i][j + 1]; if (val[i][j + 1] == 'O') { ++left[i][j]; } } } for (int i = n - 2; i >= 0; --i) { for (int j = 0; j < m; ++j) { up[i][j] = up[i + 1][j]; if (val[i + 1][j] == 'I') { ++up[i][j]; } } } for (int i = 0; i < n; ++i) { for (int j = 0; j < m; ++j) { if (val[i][j] == 'J') { // cout << i << " " << j << " " << up[i][j] << " " << left[i][j] << '\n'; ans += up[i][j] * left[i][j]; } } } cout << ans << '\n'; } signed main() { cin.tie(0); ios::sync_with_stdio(false); int t = 1; // cin >> t; solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...