제출 #317287

#제출 시각아이디문제언어결과실행 시간메모리
317287nandonathanielBitaro the Brave (JOI19_ho_t1)C++14
100 / 100
371 ms88716 KiB
#include<bits/stdc++.h>
using namespace std;
const int MAXN=3005;

char a[MAXN][MAXN];
int sufO[MAXN][MAXN],sufI[MAXN][MAXN];

int main(){
	ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(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];
	}
	for(int i=1;i<=n;i++){
		for(int j=m;j>=1;j--){
			sufO[i][j]=sufO[i][j+1];
			if(a[i][j]=='O')sufO[i][j]++;
		}
	}
	for(int i=1;i<=m;i++){
		for(int j=n;j>=1;j--){
			sufI[i][j]=sufI[i][j+1];
			if(a[j][i]=='I')sufI[i][j]++;
		}
	}
	long long ans=0;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			if(a[i][j]=='J'){
				ans+=(sufO[i][j+1]*sufI[j][i+1]);
			}
		}
	}
	cout << ans << '\n';
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...