제출 #986994

#제출 시각아이디문제언어결과실행 시간메모리
986994PagodePaivaRectangles (IOI19_rect)C++17
25 / 100
5074 ms37952 KiB
#include "rect.h"
#include<bits/stdc++.h>

using namespace std;

const int N = 2510;

int n, m;
int v[N][N];

long long count_rectangles(std::vector<std::vector<int> > a) {
	n = a.size();
	m = a[0].size();
	for(int i = 0;i < n;i++){
		for(int j = 0;j < m;j++){
			v[i+1][j+1] = a[i][j];
		}
	}
	long long res = 0;
	for(int a = 2;a < n;a++){
		for(int b = 2;b < m;b++){
			for(int c = a;c < n;c++){
				for(int d = b;d < m;d++){
					bool aux = true;
					for(int i = a;i <= c;i++){
						int linha = 0;
						for(int j = b;j <= d;j++) linha = max(linha, v[i][j]);
						if(linha >= min(v[i][b-1], v[i][d+1])){
							aux = false;
							break;
						}
					}
					if(!aux) continue;
					for(int j = b;j <= d;j++){
						int coluna = 0;
						for(int i = a;i <= c;i++) coluna = max(coluna, v[i][j]);
							if(coluna >= min(v[a-1][j], v[c+1][j])){
								aux = false;
								break;
							}
					}
					if(aux) 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...