Submission #968451

#TimeUsernameProblemLanguageResultExecution timeMemory
968451tsetBitaro the Brave (JOI19_ho_t1)C++14
100 / 100
421 ms161844 KiB
#include<bits/stdc++.h> using namespace std; #define int long long signed main() { int nbLigs, nbCols; cin >> nbLigs >> nbCols; vector<string> tab(nbLigs); for(int iL =0; iL < nbLigs; iL++) { cin >>tab[iL]; } vector<vector<int>>cumulBotToTop(nbLigs+1, vector<int>(nbCols+1, 0)); vector<vector<int>>cumulRightToLeft(nbLigs+1, vector<int>(nbCols+1, 0)); for(int iL = nbLigs-1; iL >=0; iL--) { for(int iC = nbCols-1; iC >= 0; iC--) { cumulRightToLeft[iL][iC] = cumulRightToLeft[iL][iC+1]; if(tab[iL][iC] == 'O') cumulRightToLeft[iL][iC]++; } } for(int iC = nbCols-1; iC >= 0; iC--) { for(int iL = nbLigs-1; iL >=0; iL--) { cumulBotToTop[iL][iC] = cumulBotToTop[iL+1][iC]; if(tab[iL][iC] == 'I') cumulBotToTop[iL][iC]++; } } int ans = 0; for(int iL = 0; iL < nbLigs; iL++) { for(int iC = 0; iC < nbCols; iC++) { if(tab[iL][iC] == 'J') { ans += cumulBotToTop[iL][iC] * cumulRightToLeft[iL][iC]; } } } printf("%lld\n", ans); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...