제출 #106758

#제출 시각아이디문제언어결과실행 시간메모리
106758FiloSanzaBitaro the Brave (JOI19_ho_t1)C++14
100 / 100
451 ms88696 KiB
#include <bits/stdc++.h> using namespace std; int main(){ cin.tie(0); cin.sync_with_stdio(0); int N, M; cin >> N >> M; vector<vector<char>> g(N, vector<char>(M)); vector<vector<int>> i(N, vector<int>(M, 0)), o(N, vector<int>(M, 0)); for(auto &i : g) for(auto &j : i) cin >> j; int cont; for(int ii=0; ii<N; ii++){ cont = 0; for(int jj=M-1; jj>=0; jj--){ if(g[ii][jj] == 'O') cont ++; if(g[ii][jj] == 'J') o[ii][jj] = cont; } } for(int ii=0; ii<M; ii++){ cont = 0; for(int jj=N-1; jj>=0; jj--){ if(g[jj][ii] == 'I') cont ++; if(g[jj][ii] == 'J') i[jj][ii] = cont; } } long long ans = 0; for(int ii=0; ii<N; ii++){ for(int jj=0; jj<M; jj++) if(g[ii][jj] == 'J'){ ans += 1LL * i[ii][jj] * o[ii][jj]; // cout << ii << " " << jj << ": " << 1LL * i[ii][jj] * o[ii][jj] << "\n"; } } cout << ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...