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>
using namespace std;
long long count_rectangles(std::vector<std::vector<int> > a) {
int n=a.size(), m=a[0].size();
long long res=0;
for (int r1=1; r1<n-1; r1++)
{
for (int c1=1; c1<m-1; c1++)
{
for (int r2=r1; r2<n-1; r2++)
{
vector<int> mx(n, 0);
for (int c2=c1; c2<m-1; c2++)
{
int tmp=0, f=0;
for (int i=r1; i<=r2; i++) tmp=max(tmp, a[i][c2]), mx[i]=max(mx[i], a[i][c2]);
if (tmp>=a[r1-1][c2]||tmp>=a[r2+1][c2]) break;
for (int i=r1; i<=r2; i++) if (mx[i]>=a[i][c2+1]||mx[i]>=a[i][c1-1]) f=1;
//if (r1==4&&r2==4&&c1==2&&c2==3) cout<<"here "<<mx[r1]<<'\n';
if (!f) res++; //cout<<"debug "<<r1<<' '<<c1<<' '<<r2<<' '<<c2<<'\n';
}
}
}
}
return res;
}
| # | 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... |