Submission #1242533

#TimeUsernameProblemLanguageResultExecution timeMemory
1242533iyedooRectangles (IOI19_rect)C++20
37 / 100
5094 ms22852 KiB
#include "rect.h"

#include <bits/stdc++.h>
using namespace std;

typedef long long ll;

int cnt = 0;

void check(int t, int b, int l, int r, vector<vector<int>>& a) {
	// cout << t << " " << b << " " << l << " " << r << "\n";
	// int mn = INT_MAX;
	// for (int j = l; j <= r; ++j) {
	// 	mn = min(mn, a[b - 1][j]);
	// 	mn = min(mn, a[t + 1][j]);
	// }
	// for (int i = t; i <= b; ++i) {
	// 	mn = min(mn, a[i][l - 1]);
	// 	mn = min(mn, a[i][r + 1]);
	// }

	// cout << "\n";

	for (int i = t; i <= b; ++i) {
		for (int j = l; j <= r; ++j) {
			if (a[i][j] >= a[i][l - 1] || a[i][j] >= a[i][r + 1] || a[i][j] >= a[b + 1][j] || a[i][j] >= a[t - 1][j]) return;
		}
	}

	// for (int i = t; i <= b; ++i) {
	// 	for (int j = l; j <= r; ++j) {
	// 		cout << a[i][j] << " ";
	// 	}
	// 	cout << "\n";
	// }
	// cout << "\n";


	cnt++;
}

ll count_rectangles(vector<vector<int>> a) {
	int n = a.size(), m = a[0].size();

	for (int t = 1; t < n - 1; ++t) {
		for (int l = 1; l < m - 1; ++l) {
			for (int b = t; b < n - 1; ++b) {
				for (int r = l; r < m - 1; ++r) {
					check(t, b, l, r, a);
				}
			}
		}
	}

	return cnt;
}
#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...