Submission #874569

#TimeUsernameProblemLanguageResultExecution timeMemory
874569atomBitaro the Brave (JOI19_ho_t1)C++17
100 / 100
177 ms88896 KiB
#include "bits/stdc++.h" // @JASPER'S BOILERPLATE using namespace std; using ll = long long; #define FOR(i, a, b) for(int i = a; i <= b; i++) #define FORD(i, a, b) for(int i = a; i >= b; i--) #define REP(i, b) for(int i = 0; i < b; i++) #define PER(i, b) for(int i = b - 1; i >= 0; i--) #define fi first #define se second #ifdef JASPER #include "debug.h" #else #define debug(...) 166 #endif using pii = pair < int, int >; const int INF = 1e9; const int MOD = 1e9 + 7; const int N = 3e3 + 5; int n, m; char a[N][N]; int dpO[N][N], dpI[N][N]; void run_case() { cin >> n >> m; for (int i = 1; i <= n; ++i) for (int j = 1; j <= m; ++j) cin >> a[i][j]; for (int j = m; j >= 1; --j) { for (int i = 1; i <= n; ++i) { dpO[i][j] = (a[i][j] == 'O'); dpO[i][j] += dpO[i][j + 1]; } } for (int i = n; i >= 1; --i) { for (int j = 1; j <= m; ++j) { dpI[i][j] = (a[i][j] == 'I'); dpI[i][j] += dpI[i + 1][j]; } } ll ans = 0; for (int i = 1; i <= n; ++i) for (int j = 1; j <= m; ++j) if (a[i][j] == 'J') ans += 1ll * dpO[i][j] * dpI[i][j]; cout << ans << "\n"; } signed main() { cin.tie(0) -> sync_with_stdio(0); int Test = 1; //cin >> Test; for (int test = 1; test <= Test; test++){ run_case(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...