Submission #1266901

#TimeUsernameProblemLanguageResultExecution timeMemory
1266901WH8Bitaro the Brave (JOI19_ho_t1)C++20
100 / 100
512 ms150572 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long 
#define pll pair<int, int>
#define mp make_pair
#define pb push_back
#define f first
#define s second
#define endl '\n'
#define maxn 100005
#define maxc 1e15
#define iii tuple<int,int,int>
signed main(){
	int h,w;cin>>h>>w;
	vector<vector<char>> mat(h+1, vector<char>(w+1));
	vector<vector<int>> ssi(h+1, vector<int>(w+1, 0)),sso(h+1, vector<int>(w+1, 0));
	int ans=0;
	for(int i=0;i<h;i++){
		for(int j=0;j<w;j++){
			cin>>mat[i][j];
		}
	}
	for(int i=0;i<h;i++){
		for(int j=w-1;j>=0;j--){
			sso[i][j]=sso[i][j+1]+(mat[i][j]=='O'?1:0);
		}
	}
	for(int j=0;j<w;j++){
		for(int i=h-1;i>=0;i--){
			ssi[i][j]=ssi[i+1][j]+(mat[i][j]=='I'?1:0);
		}
	}
	for(int i=0;i<h;i++){
		for(int j=0;j<w;j++){
			if(mat[i][j]!='J')continue;
			ans+=ssi[i][j]*sso[i][j];
		}
	}
	cout<<ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...