Submission #287071

#TimeUsernameProblemLanguageResultExecution timeMemory
287071Atill83Wall (IOI14_wall)C++14
8 / 100
3051 ms88400 KiB
#include "wall.h" #include <bits/stdc++.h> using namespace std; #define ff first #define ss second const int MAXN = (int) 2e6 + 5; typedef pair<int, int> pii; vector<int> yer[MAXN]; set<int> st; void buildWall(int n, int k, int op[], int left[], int right[], int height[], int finalHeight[]){ for(int i = 0; i < n; i++) finalHeight[i] = 0; for(int i = 0; i < k; i++){ yer[left[i]].push_back(i + 1); yer[right[i] + 1].push_back(-(i + 1)); } for(int i = 0; i < n; i++){ for(int j: yer[i]){ if(j < 0) st.erase(-(j + 1)); else st.insert(j - 1); } int cur = 0; for(int j: st){ if(op[j] == 1){ cur = max(cur, height[j]); }else{ cur = min(cur, height[j]); } } finalHeight[i] = cur; } return; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...