Submission #574055

#TimeUsernameProblemLanguageResultExecution timeMemory
574055MateGiorbelidzeBitaro the Brave (JOI19_ho_t1)C++14
50 / 100
24 ms19048 KiB
#include <bits/stdc++.h>

using namespace std;

#define ll long long
#define ff first
#define sc second
#define pb push_back
#define in insert

ll p[3001][3001], d[3001][3001];

int32_t main () {
	ios::sync_with_stdio(false);
    cin.tie(nullptr);
    
    ll n , m; cin>>n>>m;
    
    string s[n + 1];
    
    for (int i = 1; i <= n; i++)
    	cin>>s[i];
    
    for (int i = n; i > 0; i--) {
    	for (int j = m - 1; j >= 0; j--) {
    		
    		d[i][j] = d[i][j + 1];
    		p[i][j] = p[i + 1][j];
    		
    		if (s[i][j] == 'O') d[i][j]++;
    		if (s[i][j] == 'I') p[i][j]++;
		}
	}
	
	ll ans = 0;
	
	for (int i = n; i > 0; i--) {
    	for (int j = m - 1; j >= 0; j--) {
    		
    		if (s[i][j] == 'J') {
    			ans += (d[i][j] * p[i][j]);	
			}
			
		}
	}
    
    cout<<ans;
    
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...