Submission #508549

#TimeUsernameProblemLanguageResultExecution timeMemory
508549CSQ31Bitaro the Brave (JOI19_ho_t1)C++17
100 / 100
575 ms88328 KiB
#include <bits/stdc++.h>
using namespace std;
char g[3000][3000];
int a[3000][3000],b[3000][3000];
int main()
{
	int h,w;
	cin>>h>>w;
	for(int i=0;i<h;i++){
		for(int j=0;j<w;j++){
			cin>>g[i][j];
			a[i][j] = g[i][j] == 'O';
			b[i][j] = g[i][j] == 'I';
			if(j)a[i][j]+=a[i][j-1];
			if(i)b[i][j]+=b[i-1][j];	
		}
	}
	long long int ans = 0;
	for(int i=0;i<h;i++){
		for(int j=0;j<w;j++){
			if(g[i][j] == 'J'){
				ans+=(b[h-1][j] - b[i][j]) * 1LL * (a[i][w-1] - a[i][j]);
				
			}	
		}
	}
	cout<<ans;
	
	
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...