Submission #123967

#TimeUsernameProblemLanguageResultExecution timeMemory
123967ioilolcomBitaro the Brave (JOI19_ho_t1)C++14
50 / 100
1067 ms62840 KiB
#include <bits/stdc++.h>
using namespace std;
#define endl "\n"
#define pii pair<int,int>
typedef long long int ll;
vector<pii> jj;
map<int,vector<int> > o;
map<int,vector<int> > l;
int main()
{

	ios_base:: sync_with_stdio(false); cin.tie(0);
	int n,m; cin>>n>>m;
	for(int i=1; i<=n; i++) {
		for(int j=1; j<=m; j++) {
			char c;
			cin>>c;
			if(c=='J') jj.push_back({i,j});
			else if(c=='O') o[i].push_back(j);
			else if(c=='I') l[j].push_back(i);
		}
	}
	ll lol=0;
	for(auto a:jj) {
		int f=a.first;
		int s=a.second;
		//cout<<f<<" "<<s<<endl;
		/*for(int z:l[s]) {
		        cout<<z<<" "<<s<<endl;
		   }*/
		ll ans=o[f].end()-upper_bound(o[f].begin(),o[f].end(),s);

		ll anss=l[s].end()-upper_bound(l[s].begin(),l[s].end(),f);
		//cout<<ans<<" "<<anss<<endl;
		lol+=ans*anss;
		//break;
	}

	cout<<lol<<endl;

	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...