Submission #287477

#TimeUsernameProblemLanguageResultExecution timeMemory
287477Haunted_CppRectangles (IOI19_rect)C++17
15 / 100
1399 ms51636 KiB
#include "rect.h" #include <bits/stdc++.h> using namespace std; long long count_rectangles(vector<vector<int> > mat) { const int r = mat.size(); const int c = mat[0].size(); if (r <= 2) { return 0; } if (c <= 2) { return 0; } // Subtask #1 && Subtask #2 long long res = 0; for (int i = 1; i < r - 1; i++) { for (int j = 1; j < c - 1; j++) { bitset<100> valid; valid.set(); vector<int> col_max(c); for (int x = i; x < r - 1; x++) { int mx = 0; bool valid_state = true; for (int z = j; z < c - 1; z++) { const int L = mat[x][j - 1]; const int R = mat[x][z + 1]; const int up = mat[i - 1][z]; const int down = mat[x + 1][z]; mx = max(mx, mat[x][z]); col_max[z] = max(col_max[z], mat[x][z]); if (mx >= L || mx >= R) valid[z] = 0; if (col_max[z] >= up || col_max[z] >= down) valid_state = 0; if (mx >= L || mx >= R) continue; if (!valid_state) continue; if (!valid[z]) continue; if (col_max[z] >= up || col_max[z] >= down) continue; ++res; } } } } return res; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...