Submission #444904

#TimeUsernameProblemLanguageResultExecution timeMemory
444904erkeBitaro the Brave (JOI19_ho_t1)C++11
100 / 100
373 ms159232 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long

const int N = 3005;

char a[N][N];
int cntO[N][N], cntI[N][N];

signed main() {
  // freopen("in" , "r", stdin );
  cin.tie(0)->sync_with_stdio(0);
  int n, m;
  cin >> n >> m;
  for (int i = 1; i <= n; i++)
  for (int j = 1; j <= m; j++) {
    cin >> a[i][j];
    if (a[i][j] == 'O') cntO[i][j]++;
    if (a[i][j] == 'I') cntI[i][j]++;
    cntO[i][j] += cntO[i][j - 1];
    cntI[i][j] += cntI[i - 1][j];
  }
  int ans = 0;
  for (int i = 1; i <= n; i++)
  for (int j = 1; j <= m; j++) {
    if (a[i][j] == 'J') {
      ans += (cntO[i][m] - cntO[i][j]) * (cntI[n][j] - cntI[i][j]);
    }
  }
  cout << ans << '\n';
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...