Submission #1325263

#TimeUsernameProblemLanguageResultExecution timeMemory
1325263tkm_algorithmsBitaro the Brave (JOI19_ho_t1)C++20
100 / 100
99 ms10148 KiB
#include <bits/stdc++.h>

using namespace std;
using ll = long long;
#define int ll
using P = pair<int, int>;
#define all(x) x.begin(), x.end()
#define rep(i, l, n) for (int i = l; i < (n); ++i)
#define sz(x) (int)x.size()
const char nl = '\n';
const int mod = 998244353;

void solve() {
	int n, m; cin >> n >> m;
	vector<string> a(n);
	for (auto &i: a)cin >> i;
	
	vector<int> p(m);
	rep(i, 1, n)
		rep(j, 0, m)p[j] += (a[i][j] == 'I');
		
	int res = 0;
	rep(i, 0, n) {
		int cntO = 0;
		rep(j, 0, m)cntO += a[i][j] == 'O';
		rep(j, 0, m) {
			if (a[i][j] == 'O')cntO--;
			if (a[i][j] == 'J')res += cntO*p[j];
		}
		if (i+1<n) {
			rep(j, 0, m)
				if (a[i+1][j] =='I')p[j]--;
		}
	}
	cout << res << nl;
}

int32_t main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    solve();
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...