Submission #110350

#TimeUsernameProblemLanguageResultExecution timeMemory
110350samsBitaro the Brave (JOI19_ho_t1)C++14
100 / 100
966 ms151296 KiB
#include <bits/stdc++.h> using namespace std; const int maxn = 3e3+10; int h, w; char mat[maxn][maxn]; long long sumO[maxn][maxn], sumI[maxn][maxn]; int main() { cin >> h >> w; for(int i = 1 ; i <= h ; ++i) for(int j = 1 ; j <= w; ++j) cin >> mat[i][j]; // make a sum of eche O for(int i = 1 ; i <= h ; ++i) { for(int j = 1 ; j <= w; ++j) { sumO[i][j] = sumO[i][j - 1]; if(mat[i][j] == 'O') sumO[i][j]++; } } for(int i = 1 ; i <= w ; ++i) { for(int j = 1 ; j <= h; ++j) { sumI[j][i] = sumI[j - 1][i]; if(mat[j][i] == 'I') sumI[j][i]++; } } long long resp = 0; for(int i = 1 ; i <= h ; ++i) { for(int j = 1 ; j <= w; ++j) { if(mat[i][j] == 'J') { long long O = sumO[i][w] - sumO[i][j]; long long I = sumI[h][j] - sumI[i - 1][j]; //cout << i << " " << j << " " << O << " " << I << "\n" ; resp += (O*I); } } } cout << resp << "\n"; /*for(int i = 1 ; i <= h ; ++i) { for(int j = 1 ; j <= w; ++j) { cout << sumO[i][j] <<" "; } cout << "\n"; } cout << "\n"; for(int i = 1 ; i <= h ; ++i) { for(int j = 1 ; j <= w; ++j) { cout << sumI[i][j] <<" "; } cout << "\n"; }*/ return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...