Submission #963334

#TimeUsernameProblemLanguageResultExecution timeMemory
963334Saul0906Bitaro the Brave (JOI19_ho_t1)C++14
100 / 100
304 ms159528 KiB
#include <bits/stdc++.h>
#define rep(a,b,c) for(int a=b; a<c; a++)
#define ll long long

using namespace std;

int main(){
	ll h, w;
	cin>>h>>w;
	string g[h];
	ll ans=0, p[h][w], dp[h][w]{};
	rep(i,0,h){
		cin>>g[i];
		rep(j,0,w){
			p[i][j]=(g[i][j]=='O');
			if(j) p[i][j]+=p[i][j-1];
		}
	}
	rep(i,0,h){
		rep(j,0,w){
			if(i) dp[i][j]=dp[i-1][j];
			if(i && g[i-1][j]=='J') dp[i][j]+=p[i-1][w-1]-p[i-1][j];
			if(g[i][j]=='I') ans+=dp[i][j];
		}
	}
	cout<<ans<<endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...