Submission #823953

#TimeUsernameProblemLanguageResultExecution timeMemory
823953annabeth9680Wall (IOI14_wall)C++17
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; const int INF = 2000000011; const pair<int,int> def = {-INF,INF}; pair<int,int> tree[8000000]; //first is the add part, second remove void build(int curl = 0, int curr = N-1, int p = 1){ if(curl == 0 && curr == N-1){ tree[p] = {0,0}; } else{ tree[p] = def; } int mid = (curl+curr)>>1; build(curl,mid,(p<<1)|1); build(mid+1,curr,(p<<1)); } pair<int,int> comb(pair<int,int> a, pair<int,int> b){ //change b using a's info if(a.second < b.first){ return {a.second,a.second}; } if(a.first > b.second){ return {a.first,a.first}; } return {max(a.first,b.first),min(a.second,b.second)}; } void push(int p){ if(tree[p] != def){ tree[(p<<1)] = comb(tree[p],tree[p<<1]); tree[(p<<1)|1] = comb(tree[p],tree[(p<<1)|1]); tree[p] = def; } } void update(int curl, int curr, int p, int findl, int findr, pair<int,int> val){ if(findr < curl || curr < findl) return; if(findl < curl && curr < findr){ tree[p] = comb(val,tree[p]); return; } if(curl != curr) push(p); int mid = (curl+curr)>>1; update(curl,mid,(p<<1),findl,findr,val); update(mid+1,curr,(p<<1)|1,findl,findr,val); } void query(int* ans, int p, int curl, int curr){ if(curl == curr){ ans[p] = tree[p].first; return; } push(p); int mid = (curl+curr)>>1; query(ans,p<<1,curl,mid); query(ans,(p<<1)|1,mid+1,curr); } void buildWall(int n, int k, int* op, int* lb, int* rb, int* h, int* ans){ N = n; build(); for(int i = 0;i<k;++i){ pair<int,int> val = def; if(op[i] == 1) val.first = h[i]; else val.second = h[i]; update(0,N-1,1,lb[i],rb[i],val); } query(ans,1,0,N-1); } int N,op[500005], lb[500005], rb[500005], h[500005], ans[500005];

Compilation message (stderr)

wall.cpp:6:37: error: 'N' was not declared in this scope
    6 | void build(int curl = 0, int curr = N-1, int p = 1){
      |                                     ^
wall.cpp: In function 'void build(int, int, int)':
wall.cpp:7:29: error: 'N' was not declared in this scope
    7 |     if(curl == 0 && curr == N-1){
      |                             ^
wall.cpp: In function 'void buildWall(int, int, int*, int*, int*, int*, int*)':
wall.cpp:55:5: error: 'N' was not declared in this scope
   55 |     N = n;
      |     ^