Submission #543734

#TimeUsernameProblemLanguageResultExecution timeMemory
543734tudorBitaro the Brave (JOI19_ho_t1)C++17
100 / 100
405 ms91060 KiB
#include <iostream> #include <string> using namespace std; const int nmax = 3000; string s[nmax]; int O[nmax][nmax + 1]; int I[nmax + 1][nmax]; int main() { int n, m; cin >> n >> m; for ( int i = 0; i < n; i++ ) cin >> s[i]; for ( int i = 0; i < n; i++ ) for ( int j = m - 1; j >= 0; j-- ) O[i][j] = O[i][j + 1] + ( s[i][j] == 'O' ); for ( int j = 0; j < m; j++ ) for ( int i = n - 1; i >= 0; i-- ) I[i][j] = I[i + 1][j] + ( s[i][j] == 'I' ); long long cate = 0; for ( int i = 0; i < n; i++ ) for ( int j = 0; j < m; j++ ) if ( s[i][j] == 'J' ) cate += ( long long ) O[i][j + 1] * I[i + 1][j]; cout << cate; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...