Submission #1207265

#TimeUsernameProblemLanguageResultExecution timeMemory
1207265matisitoWall (IOI14_wall)C++20
8 / 100
3098 ms71000 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...