제출 #1131395

#제출 시각아이디문제언어결과실행 시간메모리
1131395tuongllBitaro the Brave (JOI19_ho_t1)C++20
100 / 100
263 ms80100 KiB
// #pragma GCC optimize("O3,unroll-loops") // #pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt") #include <iostream> #include <cstring> #include <algorithm> #include <vector> #include <utility> #include <cmath> #include <ctime> #include <cassert> #include <set> #include <stack> #include <map> #include <queue> #include <random> #include <chrono> #include <bitset> #include <array> using ll = long long; #define debug(x) cout << #x << " = " << x << '\n' #define separator "===============================================\n" #define all(a) a.begin(), a.end() #define SZ(a) (int)(a).size() using namespace std; const int mxn = 1e5 + 3; const ll mod = 1e9 + 7; const int inf32 = 2e9; const ll inf64 = 3e18; void solve(){ int n, m; cin >> n >> m; vector<vector<int>> cntI(n + 1, vector<int>(m + 1)), cntO(n + 1, vector<int>(m + 1)); vector<vector<char>> a(n + 1, vector<char>(m + 1)); for (int i = 1; i <= n; ++i){ for (int j = 1; j <= m; ++j){ cin >> a[i][j]; if (a[i][j] == 'I') ++cntI[i][j]; if (a[i][j] == 'O') ++cntO[i][j]; cntI[i][j] += cntI[i - 1][j]; cntO[i][j] += cntO[i][j - 1]; } } long long res = 0; for (int i = 1; i < n; ++i){ for (int j = 1; j < m; ++j) if (a[i][j] == 'J'){ res += 1ll * (cntO[i][m] - cntO[i][j]) * (cntI[n][j] - cntI[i][j]); } } cout << res; } int main(){ auto start = chrono::steady_clock::now(); ios_base::sync_with_stdio(false); cin.tie(NULL); int t = 1; // cin >> t; while(t--) solve(); chrono::duration<double> elapsed {chrono::steady_clock::now() - start}; cerr << "\n>> Runtime: " << elapsed.count() << "s\n"; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...