This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "rect.h"
#include <bits/stdc++.h>
#pragma GCC optimize("O3")
using namespace std;
typedef long long ll;
const int N = 2500 + 3;
vector<vector<int>> a;
int n, m;
bool check(int x1, int y1, int x2, int y2){
for(int i = x1; i <= x2; ++i)
for(int j = y1; j <= y2; ++j)
if(a[i][j] >= a[x1 - 1][j] || a[i][j] >= a[x2 + 1][j] || a[i][j] >= a[i][y1 - 1] || a[i][j] >= a[i][y2 + 1])
return false;
return true;
}
long long count_rectangles(vector<vector<int>> _a) {
swap(a, _a);
n = a.size(), m = a[0].size();
ll ans = 0;
for(int x1 = 1; x1 < n - 1; ++x1)
for(int y1 = 1; y1 < m - 1; ++y1)
for(int x2 = x1; x2 < n - 1; ++x2)
for(int y2 = y1; y2 < m - 1; ++y2){
bool b = check(x1, y1, x2, y2);
if(!b) break;
++ans;
}
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |