Submission #1301787

#TimeUsernameProblemLanguageResultExecution timeMemory
1301787kustov_vadim_533Bitaro the Brave (JOI19_ho_t1)C++20
100 / 100
124 ms80048 KiB
#include <iostream> #include <vector> #include <algorithm> #include <set> #include <unordered_set> #include <map> #include <unordered_map> #include <string> #include <math.h> #include <cmath> #include <stack> #include <bitset> #include <array> #include <random> #include <queue> using namespace std; typedef long long ll; typedef long double ld; void solve() { int n, m; cin >> n >> m; vector<vector<char>> a(n, vector<char>(m)); for (int i = 0; i < n; ++i) { for (int j = 0; j < m; ++j) { cin >> a[i][j]; } } vector<vector<int>> cnti(n, vector<int>(m)); for (int i = 0; i < n; ++i) { for (int j = 0; j < m; ++j) { cnti[i][j] = a[i][j] == 'I'; } } for (int i = n - 2; i >= 0; --i) { for (int j = 0; j < m; ++j) { cnti[i][j] += cnti[i + 1][j]; } } vector<vector<int>> cnto(n, vector<int>(m)); for (int i = 0; i < n; ++i) { for (int j = 0; j < m; ++j) { cnto[i][j] = a[i][j] == 'O'; } } for (int i = 0; i < n; ++i) { for (int j = m - 2; j >= 0; --j) { cnto[i][j] += cnto[i][j + 1]; } } ll ans = 0; for (int i = 0; i < n; ++i) { for (int j = 0; j < m; ++j) { ans += (a[i][j] == 'J') * cnti[i][j] * cnto[i][j]; } } cout << ans << '\n'; } signed main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cout.precision(30); int t = 1; // cin >> t; while (t--) { solve(); } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...