Submission #1355076

#TimeUsernameProblemLanguageResultExecution timeMemory
1355076gvancakBitaro the Brave (JOI19_ho_t1)C++20
100 / 100
247 ms150424 KiB
#include <bits/stdc++.h>
#define f first
#define s second
#define pb push_back
#define mp make_pair
#define ll long long
using namespace std;
ll const N=3005;
ll l,r,x,y,z,ans,t,n,q,mx,mn,k,O[N][N],I[N][N];
char a[N][N];
ll m;
bool ok,okk;
string s,s1;
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0),cout.tie(0);
    cin >> n >> m;
    for (int i=1; i<=n; i++){
    	for (int j=1; j<=m; j++){
    		cin>>a[i][j];
		}
	}
	
	for (int i=1; i<=n; i++){
		O[i][m+1]=0;
		for (int j=m; j>=1; j--){
			O[i][j]=O[i][j+1];
			if (a[i][j]=='O') O[i][j]++;
		}
	}
	
	for (int j=1; j<=m; j++){
		I[n+1][j]=0;
		for (int i=n; i>=1; i--){
			I[i][j]=I[i+1][j];
			if (a[i][j]=='I') I[i][j]++;
		}
	}
	for (int i=1; i<=n; i++){
		for (int j=1; j<=m; j++){
			if (a[i][j]!='J') continue;
			ans+=O[i][j]*I[i][j];
		}
	}
	cout<<ans<<endl;

}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...