Submission #311744

#TimeUsernameProblemLanguageResultExecution timeMemory
311744grtBitaro the Brave (JOI19_ho_t1)C++17
100 / 100
132 ms88872 KiB
#include <bits/stdc++.h>

using namespace std;

using vi = vector<int>;
using ll = long long;
using pi = pair<int,int>;

#define ST first
#define ND second
#define PB push_back

const int nax = 3000 + 10;
int n, m;
int s1[nax][nax], s2[nax][nax];
string s[nax];


int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cin >> n >> m;
    for(int i = 1; i <= n; ++i) {
        cin >> s[i];
        s[i] = "#" + s[i];
    }
    for(int i = 1; i <= n; ++i) {
        for(int j = 1; j <= m; ++j) {
            s1[i][j] = s1[i][j - 1] + (s[i][j] == 'O');
            s2[i][j] = s2[i - 1][j] + (s[i][j] == 'I');
        }
    }
    ll ans = 0;
    for(int i = 1; i <= n; ++i) {
        for(int j = 1; j <= m; ++j) {
            if(s[i][j] == 'J') {
                ans += ((ll)(s1[i][m] - s1[i][j]) * (s2[n][j] - s2[i][j]));
            }
        }
    }
    cout << ans;


}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...