이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll count_rectangles(vector<vector<int>> a) {
int n=a.size(),m=a[0].size();
map<tuple<int,int,int>,int>maximo_fila;
for(int k=1;k<m-1;k++){
for(int i=1;i<n-1;i++){
for(int j=1;j<n-1;j++){
maximo_fila[{k,i,j}]=max(a[j][k],maximo_fila[{k,i,j-1}]);
}
}
}
map<tuple<int,int,int>,int>maximo_columna;
for(int k=1;k<n-1;k++){
for(int i=1;i<m-1;i++){
for(int j=1;j<m-1;j++){
maximo_columna[{k,i,j}]=max(a[k][j],maximo_columna[{k,i,j-1}]);
}
}
}
ll rec=0;
for(int i=1;i<n-1;i++){
for(int j=1;j<n-1;j++){
for(int k=1;k<m-1;k++){
for(int l=1;l<m-1;l++){
bool posible=true;
for(int fila=i;fila<=j;fila++){
if(maximo_columna[{fila,k,l}]<a[fila][k-1]&&maximo_columna[{fila,k,l}]<a[fila][l+1]){
continue;
}
else{
posible=false;
break;
}
}
if(!posible){
continue;
}
for(int columna=k;columna<=l;columna++){
if(maximo_fila[{columna,k,l}]<a[columna][i-1]&&maximo_fila[{columna,k,l}]<a[columna][j+1]){
continue;
}
else{
posible=false;
break;
}
}
rec+=(posible);
}
}
}
}
return rec;
}
# | 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... |