#include "wall.h"
#include <iostream>
#include <iomanip>
#include <string>
#include <math.h>
#include <algorithm>
#include <cstring>
#include <numeric>
#include <vector>
#include <bitset>
#include <map>
#include <set>
#include <queue>
#include <deque>
#include <stack>
#include <unordered_map>
#include <unordered_set>
using namespace std;
const int maxK=5e5;
const int maxN=2e6;
struct point{
int x, y, z;
};
vector<point>v [maxN+5];
vector<pair<int, int>>pene(maxK+1);
void buildWall(int n, int k, int op[], int left[], int right[], int height[], int finalHeight[]){
for(int i=0 ; i<k ; i++){
v[left[i]].push_back({i, op[i], height[i]});
v[right[i]+1].push_back({i, -op[i], height[i]});
}
vector<pair<int, int>>curr;
for(int i=0 ; i<n ; i++){
int xd=0;
for(point it:v[i]){
if(it.y<0) pene[it.x]={-1, -1};
else pene[it.x]={it.y, it.z};
// cout<<i<<" "<<it.x<<" "<<it.y<<"\n";
}
for(int j=0 ; j<k ; j++){
if(pene[j].first==1) xd=max(xd, pene[j].second);
else if(pene[j].first==2) xd=min(xd, pene[j].second);
}
finalHeight[i]=xd;
}
return;
}
# | 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... |