#include <bits/stdc++.h>
#include "wall.h"
using namespace std;
#define F(i, n) for(int i = 0; i < (n); i++)
using pii = pair<int, int>;
pii merge(pii a, pii b) {
if(a.second < b.first) {
return {b.first, b.first};
} else if(b.second < a.first) {
return {b.second, b.second};
} else {
return {max(a.first, b.first), min(a.second, b.second)};
}
}
void buildWall(int n, int k, int op[], int left[], int right[], int height[], int finalHeight[]){
vector<pair<int, int>> intervals;
F(i, k) {
if(op[i] == 1) {
intervals.emplace_back(height[i], INT_MAX);
} else if(op[i] == 2) {
intervals.emplace_back(0, height[i]);
} else {
assert(false);
}
}
F(i, n) {
pii ret = {0, 0};
F(j, k) {
if(left[j] <= i && i <= right[j]) {
ret = merge(ret, intervals[j]);
}
}
finalHeight[i] = ret.first;
}
}
# | 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... |