제출 #466681

#제출 시각아이디문제언어결과실행 시간메모리
466681jli12345벽 (IOI14_wall)C++14
컴파일 에러
0 ms0 KiB
#include <wall.h> pair<int, int> st[8000100]; pair<int, int> combine(pair<int, int> orig, pair<int, int> upd){ if (upd.second > orig.first){ return {upd.second, upd.second}; } else if (upd.first < orig.second){ return {upd.first, upd.first}; } else { return {min(orig.first, upd.first), max(orig.second, upd.second)}; } } void pushdown(int node){ st[node*2] = combine(st[node*2], st[node]); st[node*2+1] = combine(st[node*2+1], st[node]); } void U(int node, int l, int r, int tl, int tr, pair<int, int> upd){ if (l >tr || r < tl) return; if (l >= tl && r <= tr){ st[node] = combine(st[node], upd); //cout << l << " " << r << " " << st[node].first << " " << st[node].second << "\n"; return; } pushdown(node); int mid = (l+r)/2; U(node*2, l, mid, tl, tr, upd); U(node*2+1, mid+1, r, tl, tr, upd); st[node].first = max(st[node*2].first, st[node*2+1].first); st[node].second = min(st[node*2].second, st[node*2+1].second); } int Q(int node, int l, int r, int ind){ if (l > ind || r < ind){ return 0; } if (l == r){ return st[node].first; } pushdown(node); int mid = (l+r)/2; st[node].first = max(st[node*2].first, st[node*2+1].first); st[node].second = min(st[node*2].second, st[node*2+1].second); return max(Q(node*2, l, mid, ind), Q(node*2+1, mid+1, r, ind)); } void buildWall(int n, int k, int op[], int left[], int right[], int height[], int finalHeight[]){ for (int i = 0; i < k; i++){ if (op[i] == 1){ U(1, 0, n-1, left[i], right[i], {0x3f3f3f3f, height[i]}); } else { U(1, 0, n-1, left[i], right[i], {height[i], 0}); } } for (int i = 0; i < n; i++){ finalHeight[i] = Q(1, 0, n-1, i); } }

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

wall.cpp:3:1: error: 'pair' does not name a type
    3 | pair<int, int> st[8000100];
      | ^~~~
wall.cpp:5:1: error: 'pair' does not name a type
    5 | pair<int, int> combine(pair<int, int> orig, pair<int, int> upd){
      | ^~~~
wall.cpp: In function 'void pushdown(int)':
wall.cpp:16:5: error: 'st' was not declared in this scope; did you mean 'std'?
   16 |     st[node*2] = combine(st[node*2], st[node]);
      |     ^~
      |     std
wall.cpp:16:18: error: 'combine' was not declared in this scope
   16 |     st[node*2] = combine(st[node*2], st[node]);
      |                  ^~~~~~~
wall.cpp: At global scope:
wall.cpp:20:48: error: 'pair' has not been declared
   20 | void U(int node, int l, int r, int tl, int tr, pair<int, int> upd){
      |                                                ^~~~
wall.cpp:20:52: error: expected ',' or '...' before '<' token
   20 | void U(int node, int l, int r, int tl, int tr, pair<int, int> upd){
      |                                                    ^
wall.cpp: In function 'void U(int, int, int, int, int, int)':
wall.cpp:24:9: error: 'st' was not declared in this scope; did you mean 'std'?
   24 |         st[node] = combine(st[node], upd);
      |         ^~
      |         std
wall.cpp:24:38: error: 'upd' was not declared in this scope
   24 |         st[node] = combine(st[node], upd);
      |                                      ^~~
wall.cpp:24:20: error: 'combine' was not declared in this scope
   24 |         st[node] = combine(st[node], upd);
      |                    ^~~~~~~
wall.cpp:30:31: error: 'upd' was not declared in this scope
   30 |     U(node*2, l, mid, tl, tr, upd);
      |                               ^~~
wall.cpp:32:5: error: 'st' was not declared in this scope; did you mean 'std'?
   32 |     st[node].first = max(st[node*2].first, st[node*2+1].first);
      |     ^~
      |     std
wall.cpp:32:22: error: 'max' was not declared in this scope
   32 |     st[node].first = max(st[node*2].first, st[node*2+1].first);
      |                      ^~~
wall.cpp:33:23: error: 'min' was not declared in this scope; did you mean 'mid'?
   33 |     st[node].second = min(st[node*2].second, st[node*2+1].second);
      |                       ^~~
      |                       mid
wall.cpp: In function 'int Q(int, int, int, int)':
wall.cpp:41:16: error: 'st' was not declared in this scope; did you mean 'std'?
   41 |         return st[node].first;
      |                ^~
      |                std
wall.cpp:45:5: error: 'st' was not declared in this scope; did you mean 'std'?
   45 |     st[node].first = max(st[node*2].first, st[node*2+1].first);
      |     ^~
      |     std
wall.cpp:45:22: error: 'max' was not declared in this scope
   45 |     st[node].first = max(st[node*2].first, st[node*2+1].first);
      |                      ^~~
wall.cpp:46:23: error: 'min' was not declared in this scope; did you mean 'mid'?
   46 |     st[node].second = min(st[node*2].second, st[node*2+1].second);
      |                       ^~~
      |                       mid
wall.cpp: In function 'void buildWall(int, int, int*, int*, int*, int*, int*)':
wall.cpp:53:68: error: cannot convert '<brace-enclosed initializer list>' to 'int'
   53 |             U(1, 0, n-1, left[i], right[i], {0x3f3f3f3f, height[i]});
      |                                                                    ^
      |                                                                    |
      |                                                                    <brace-enclosed initializer list>
wall.cpp:20:48: note:   initializing argument 6 of 'void U(int, int, int, int, int, int)'
   20 | void U(int node, int l, int r, int tl, int tr, pair<int, int> upd){
      |                                                ^~~~
wall.cpp:55:59: error: cannot convert '<brace-enclosed initializer list>' to 'int'
   55 |             U(1, 0, n-1, left[i], right[i], {height[i], 0});
      |                                                           ^
      |                                                           |
      |                                                           <brace-enclosed initializer list>
wall.cpp:20:48: note:   initializing argument 6 of 'void U(int, int, int, int, int, int)'
   20 | void U(int node, int l, int r, int tl, int tr, pair<int, int> upd){
      |                                                ^~~~