제출 #798158

#제출 시각아이디문제언어결과실행 시간메모리
798158QwertyPi벽 (IOI14_wall)C++14
100 / 100
605 ms39956 KiB
#include "wall.h" #include <bits/stdc++.h> using namespace std; const int INF = 1 << 30; struct range{ int l, r; range operator+ (const range& o) const { if(r < o.l) return {o.l, o.l}; if(l > o.r) return {o.r, o.r}; return {max(o.l, l), min(o.r, r)}; } }; range t[1 << 21]; int k; void build(int v = 0, int l = 0, int r = k - 1){ if(l == r) return void(t[v] = {0, INF}); int m = (l + r) / 2; build(v * 2 + 1, l, m); build(v * 2 + 2, m + 1, r); t[v] = t[v * 2 + 1] + t[v * 2 + 2]; } void update(int p, int op, int h, int v = 0, int l = 0, int r = k - 1){ if(l == r){ if(op == 0) t[v] = {0, INF}; else if(op == 1) t[v] = {h, INF}; else t[v] = {0, h}; return; } int m = (l + r) / 2; if(p <= m) update(p, op, h, v * 2 + 1, l, m); else update(p, op, h, v * 2 + 2, m + 1, r); t[v] = t[v * 2 + 1] + t[v * 2 + 2]; } struct query{ int t, p, op, h; bool operator< (const query& o) const { return t < o.t; } }; void buildWall(int n, int k, int op[], int left[], int right[], int height[], int finalHeight[]){ ::k = k; vector<query> Q; for(int i = 0; i < k; i++){ Q.push_back({left[i], i, op[i], height[i]}); Q.push_back({right[i] + 1, i, 0, height[i]}); } build(); sort(Q.begin(), Q.end()); int qi = 0; for(int i = 0; i < n; i++){ while(qi < Q.size() && Q[qi].t <= i) update(Q[qi].p, Q[qi].op, Q[qi].h), qi++; finalHeight[i] = t[0].l; } return; }

컴파일 시 표준 에러 (stderr) 메시지

wall.cpp: In function 'void buildWall(int, int, int*, int*, int*, int*, int*)':
wall.cpp:56:12: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<query>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   56 |   while(qi < Q.size() && Q[qi].t <= i) update(Q[qi].p, Q[qi].op, Q[qi].h), qi++;
      |         ~~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...