Submission #1359233

#TimeUsernameProblemLanguageResultExecution timeMemory
1359233nobasistakenBitaro the Brave (JOI19_ho_t1)C++20
100 / 100
221 ms150236 KiB
#include<bits/stdc++.h>
using namespace std;
#define int long long
//#define endl '\n'
#define all(v) v.begin(),v.end()
bool testcases=0;
void solve(){
	int n,m;
	cin>>n>>m;
	char v[n+1][m+1];
	int co[n+1][m+1];
	memset(co,0,sizeof(co));
	int ci[n+1][m+1];
	memset(ci,0,sizeof(ci));
	for(int i=1;i<=n;i++){
		int cnto=0;
		for(int j=1;j<=m;j++){
			cin>>v[i][j];
		}
	}
	int ans=0;
	for(int i=1;i<=n;i++){
		int cnt=0;
		for(int j=m;j>0;j--){
			co[i][j]=cnt;
			if(v[i][j]=='O')cnt++;
		}
	}
	for(int j=1;j<=m;j++){
		int cnt=0;
		for(int i=n;i>0;i--){
			ci[i][j]=cnt;
			if(v[i][j]=='I')cnt++;
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			ans+=(v[i][j]=='J')*ci[i][j]*co[i][j];
		}
	}
	cout<<ans<<endl;
}
signed main() {
    iostream::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int t=1;
    if (testcases)cin>>t;
    for(int i=1;i<=t;i++){
        solve();
    }
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...