제출 #1295695

#제출 시각아이디문제언어결과실행 시간메모리
1295695fairkrashBitaro the Brave (JOI19_ho_t1)C++20
100 / 100
316 ms151852 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; ll INF = 1e18; ll MOD = 1e9 + 7; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); ll n, m; cin >> n >> m; vector<string> s(n); for (ll i = 0; i < n; i++) { cin >> s[i]; } vector<vector<ll>> pref(n, vector<ll>(m + 1)); for (ll i = 0; i < n; i++) { for (ll j = m - 1; j >= 0; j--) { pref[i][j] = pref[i][j + 1]; if (s[i][j] == 'O') { pref[i][j]++; } } } vector<vector<ll>> dp(n, vector<ll>(m)); for (ll j = 0; j < m; j++) { if (s[0][j] == 'J') { dp[0][j] = pref[0][j]; } } for (ll j = 0; j < m; j++) { for (ll i = 1; i < n; i++) { dp[i][j] = dp[i - 1][j]; if (s[i][j] == 'J') { dp[i][j] += pref[i][j]; } } } ll ans = 0; for (ll i = 0; i < n; i++) { for (ll j = 0; j < m; j++) { if (s[i][j] == 'I') { ans += dp[i][j]; } } } cout << ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...