#include<bits/stdc++.h>
using namespace std;
#define int long long
#define ll long long
#define int long long
#define sc second
#define fr first
#define all(x) x.begin(),x.end()
#define roll(x) x.rbegin(),x.rend()
#define pb push_back
signed main(){
/*ll n;
cin >> n;
vector<int> b(n+1);
vector<int> a(n);
for(ll i = 0;i<=n;i++){
cin >> b[i];
}
for(ll i =0;i<n;i++){
cin >> a[i];
}
sort(all(b));
sort(all(a));
vector<int> ans(n+1);
vector<int> ans2(n+1);
for(ll i = 1;i<=n;i++){
ans[i] = b[i] - a[i];
ans[i] = max(ans[i-1],ans[i]);
}
for(ll i = 0;i<n;i++){
ans2[i-1] = b[i] - a[i-1];
}
for(ll i = n-1;i>=0;i--){
ans2[i] = max(ans2[i],ans2[i+1]);
}
for(ll i = 1;i<=n;i++){
cout << ans[i-1] << " " << ans2[i] << endl;
}*/
ll n,m;
cin >> n >> m;
vector<pair<int,int>> a;
vector<vector<int>> b(n+1,vector<int>(m+1));
vector<vector<int>> c(n+1,vector<int>(m+1));
for(ll i = 1;i<=n;i++){
for(ll j = 1;j<=m;j++){
char k;
cin >> k;
c[i][j] = c[i-1][j];
b[i][j] = b[i][j-1];
if(k == 'J')a.pb({i,j});
if(k == 'O')b[i][j] += 1;
if(k == 'I')c[i][j] += 1;
}
}
ll ans = 0;
for(ll i = 0;i<a.size();i++){
ll x = a[i].fr;
ll y = a[i].sc;
ans += ((c[n][y] - c[x][y]) * (b[x][m] - b[x][y]));
}
cout << ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |