Submission #109041

#TimeUsernameProblemLanguageResultExecution timeMemory
109041dantoh000Wall (IOI14_wall)C++14
100 / 100
1247 ms214944 KiB
#include <bits/stdc++.h> #include "wall.h" using namespace std; struct node{ int s,e,m,omin,omax,flag; node *l, *r; node (int _s, int _e){ s = _s, e = _e, m = (s+e)/2; omin = 100005, omax = 0, flag = 0; if (s != e){ l = new node(s,m); r = new node(m+1,e); } } void value(){ if (flag == 0) return; flag = 0; if (s != e){ l->mini(s,m,omin); l->maxi(s,m,omax); r->mini(m+1,e,omin); r->maxi(m+1,e,omax); omax = 0, omin = 100005; } } int mini(int qs, int qe, int x){ if (qs == s && qe == e){ omin = min(omin,x); omax = min(omax,omin); flag = 1; } else{ value(); if (qe <= m) l->mini(qs,qe,x); else if (qs > m) r->mini(qs,qe,x); else{ l->mini(qs,m,x); r->mini(m+1,qe,x); } } } int maxi(int qs, int qe, int x){ if (qs == s && qe == e){ omax = max(x,omax); omin = max(omax,omin); flag = 1; } else{ value(); if (qe <= m) l->maxi(qs,qe,x); else if (qs > m) r->maxi(qs,qe,x); else{ l->maxi(qs,m,x); r->maxi(m+1,qe,x); } } } int qu(int x){ value(); if (s == e){ return omax; } if (x <= m){ return l->qu(x); } else return r->qu(x); } } *root; void buildWall(int n, int k, int op[], int left[], int right[], int height[], int finalHeight[]){ root = new node(0,n-1); for (int i = 0; i < k; i++){ if (op[i] == 1){ root->maxi(left[i],right[i],height[i]); } else{ root ->mini(left[i],right[i],height[i]); } } for (int i =0; i < n; i++){ finalHeight[i] = root->qu(i); } return; }

Compilation message (stderr)

wall.cpp: In member function 'int node::mini(int, int, int)':
wall.cpp:41:5: warning: no return statement in function returning non-void [-Wreturn-type]
     }
     ^
wall.cpp: In member function 'int node::maxi(int, int, int)':
wall.cpp:57:5: warning: no return statement in function returning non-void [-Wreturn-type]
     }
     ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...