이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "rect.h"
#include <bits/stdc++.h>
using namespace std;
bool check(int r1,int r2,int c1,int c2,vector<vector<int>>&arr){
for(int i=r1;i<=r2;i++){
for(int j=c1;j<=c2;j++){
if(arr[i][j]<arr[i][c1-1]&&arr[i][j]<arr[i][c2+1]&&arr[i][j]<arr[r1-1][j]&&arr[i][j]<arr[r2+1][j]){
}
else{
return false;
}
}
}
return true;
}
int funk(vector<vector<int>>&arr,int x,int y){
int n=(int)arr.size(), m=(int)arr[0].size();
if(arr[x-1][y]<=arr[x][y]||arr[x][y-1]<=arr[x][y]){
return 0;
}
int ans=0;
for(int i=x;i<n-1;i++){
for(int j=y;j<m-1;j++){
if(check(x,i,y,j,arr)){
ans++;
}
}
}
return ans;
}
int task(vector<vector<int>>&arr){
int n=arr.size(), m=arr[0].size();
int ans=0;
for(int i=1;i<n-1;i++){
for(int j=1;j<m-1;j++){
if(arr[i][j]==0&&arr[i-1][j]+arr[i+1][j]+arr[i][j-1]+arr[i][j+1]==4){
ans++;
}
}
}
return ans;
}
long long count_rectangles(vector<vector<int>>arr) {
int n=arr.size(), m=arr[0].size();
int ans=0;
bool q=true;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(arr[i][j]>1){
q=false;
break;
}
}
}
if(q){
return task(arr);
}
for(int i=1;i<n-1;i++){
for(int j=1;j<m-1;j++){
ans+=funk(arr,i,j);
}
}
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... |