Submission #1179261

#TimeUsernameProblemLanguageResultExecution timeMemory
1179261Gr1senRectangles (IOI19_rect)C++20
0 / 100
0 ms328 KiB
#include "rect.h"
#include<iostream>
#include<vector>
#include<algorithm>
#include<iomanip>

using namespace std;

#define ll long long
#define vi vector<int>
#define vvi vector<vi>

ll count_rectangles(vector<vector<int>> B) {
	//cerr << "oink" << endl;
	if (B.size() <= 2 || B[0].size() <= 2) return 0;
	ll t = 0;
	vi L;
	for (int i = 0; i < B[0].size()-1; i++) {
		if (B[0][i] <= B[1][i] || B[2][i] <= B[1][i]) {
			L = {B[1][i]};
			continue;
		}
		while (L.size() && B[1][i] > L.back()) L.pop_back();
		if (B[1][i+1] <= B[1][i]) {
			L.push_back(B[1][i]);
			continue;
		}
		t += L.size();
		/*
		cerr << "new t : " << t << ", i : " << i << endl;
		cerr << "L : {";
		for (auto i : L) {
			cerr << i << ", ";
		}
		cerr << "}" << endl; //*/
		while (L.size() && B[1][i] == L.back()) L.pop_back();
		L.push_back(B[1][i]);
	}
	return t;
}
#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...