제출 #847846

#제출 시각아이디문제언어결과실행 시간메모리
847846Derek0벽 (IOI14_wall)C++17
컴파일 에러
0 ms0 KiB
#include "wall.h" #include <bits/stdc++.h> using namespace std; #define overload4(a, b, c, d, name, ...) name #define rep1(i, n) for(ll i = 0; i < (n); ++i) #define rep2(i, a, b) for(ll i = (a); i < (b); ++i) #define rep3(i, a, b, c) for(ll i = (a); i < (b); i += (c)) #define rep(...) overload4(__VA_ARGS__, rep3, rep2, rep1)(__VA_ARGS__) #define per1(i, n) for(ll i = (n) - 1; i >= 0; --i) #define per2(i, a, b) for(ll i = (b) - 1; i >= a; --i) #define per3(i, a, b, c) for(ll i = (b) - 1; i >= (a); i -= (c)) #define per(...) overload4(__VA_ARGS__, per3, per2, per1)(__VA_ARGS__) #define pb emplace_back #define lb(v,k) (ll) (lower_bound(all(v), (k)) - v.begin()) #define ub(v,k) (ll) (upper_bound(all(v), (k)) - v.begin()) #define all(a) a.begin(),a.end() #define fi first #define se second #define PQ(T) priority_queue<T> #define SPQ(T) priority_queue<T, vector<T>, greater<T>> typedef long long ll; typedef pair<ll,ll> P; using vi = vector<ll>; using vvi = vector<vi>; using vvvi = vector<vvi>; using vvvvi = vector<vvvi>; using vp = vector<P>; using vvp = vector<vp>; constexpr int inf = (int) 1e9; constexpr int _ = (int) 1e7; ll mx[_], mn[_]; vi res; void applyMax(int p, int h) { mx[p] = max(mx[p], h); mn[p] = max(mn[p], h); } void applyMin(int p, int h) { mx[p] = min(mx[p], h); mn[p] = min(mn[p], h); } void push(int p) { applyMax(2 * p, mx[p]); applyMax(2 * p + 1, mx[p]); applyMin(2 * p, mn[p]); applyMin(2 * p + 1, mn[p]); mx[p] = 0; mn[p] = inf; } void modify(int p, int l, int r, int ql, int qr, int h, int t) { if (r < ql || l > qr) return; if (ql <= l && r <= qr) { if (t == 1) applyMax(p, h); else applyMin(p, h); return; } int m = (l + r) / 2; push(p); modify(2 * p, l, m, ql, qr, h, t); modify(2 * p + 1, m + 1, r, ql, qr, h, t); } void traversal(int p, int l, int r) { if (l == r) { res.pb(mx[p]); return; } int m = (l + r) / 2; push(p); traversal(2 * p, l, m); traversal(2 * p + 1, m + 1, r); } void buildWall(int n, int k, int t[], int l[], int r[], int h[], int ans[]) { rep(i, k) modify(1, 0, n - 1, l[i], r[i], h[i], t[i]); traversal(1, 0, n - 1); rep(i, n) ans[i] = res[i]; }

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

wall.cpp: In function 'void applyMax(int, int)':
wall.cpp:41:23: error: no matching function for call to 'max(ll&, int&)'
   41 |   mx[p] = max(mx[p], h);
      |                       ^
In file included from /usr/include/c++/10/bits/specfun.h:45,
                 from /usr/include/c++/10/cmath:1927,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:41,
                 from wall.cpp:3:
/usr/include/c++/10/bits/stl_algobase.h:254:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::max(const _Tp&, const _Tp&)'
  254 |     max(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:254:5: note:   template argument deduction/substitution failed:
wall.cpp:41:23: note:   deduced conflicting types for parameter 'const _Tp' ('long long int' and 'int')
   41 |   mx[p] = max(mx[p], h);
      |                       ^
In file included from /usr/include/c++/10/bits/specfun.h:45,
                 from /usr/include/c++/10/cmath:1927,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:41,
                 from wall.cpp:3:
/usr/include/c++/10/bits/stl_algobase.h:300:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::max(const _Tp&, const _Tp&, _Compare)'
  300 |     max(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:300:5: note:   template argument deduction/substitution failed:
wall.cpp:41:23: note:   deduced conflicting types for parameter 'const _Tp' ('long long int' and 'int')
   41 |   mx[p] = max(mx[p], h);
      |                       ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from wall.cpp:3:
/usr/include/c++/10/bits/stl_algo.h:3480:5: note: candidate: 'template<class _Tp> constexpr _Tp std::max(std::initializer_list<_Tp>)'
 3480 |     max(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3480:5: note:   template argument deduction/substitution failed:
wall.cpp:41:23: note:   mismatched types 'std::initializer_list<_Tp>' and 'long long int'
   41 |   mx[p] = max(mx[p], h);
      |                       ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from wall.cpp:3:
/usr/include/c++/10/bits/stl_algo.h:3486:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::max(std::initializer_list<_Tp>, _Compare)'
 3486 |     max(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3486:5: note:   template argument deduction/substitution failed:
wall.cpp:41:23: note:   mismatched types 'std::initializer_list<_Tp>' and 'long long int'
   41 |   mx[p] = max(mx[p], h);
      |                       ^
wall.cpp:42:23: error: no matching function for call to 'max(ll&, int&)'
   42 |   mn[p] = max(mn[p], h);
      |                       ^
In file included from /usr/include/c++/10/bits/specfun.h:45,
                 from /usr/include/c++/10/cmath:1927,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:41,
                 from wall.cpp:3:
/usr/include/c++/10/bits/stl_algobase.h:254:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::max(const _Tp&, const _Tp&)'
  254 |     max(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:254:5: note:   template argument deduction/substitution failed:
wall.cpp:42:23: note:   deduced conflicting types for parameter 'const _Tp' ('long long int' and 'int')
   42 |   mn[p] = max(mn[p], h);
      |                       ^
In file included from /usr/include/c++/10/bits/specfun.h:45,
                 from /usr/include/c++/10/cmath:1927,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:41,
                 from wall.cpp:3:
/usr/include/c++/10/bits/stl_algobase.h:300:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::max(const _Tp&, const _Tp&, _Compare)'
  300 |     max(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:300:5: note:   template argument deduction/substitution failed:
wall.cpp:42:23: note:   deduced conflicting types for parameter 'const _Tp' ('long long int' and 'int')
   42 |   mn[p] = max(mn[p], h);
      |                       ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from wall.cpp:3:
/usr/include/c++/10/bits/stl_algo.h:3480:5: note: candidate: 'template<class _Tp> constexpr _Tp std::max(std::initializer_list<_Tp>)'
 3480 |     max(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3480:5: note:   template argument deduction/substitution failed:
wall.cpp:42:23: note:   mismatched types 'std::initializer_list<_Tp>' and 'long long int'
   42 |   mn[p] = max(mn[p], h);
      |                       ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from wall.cpp:3:
/usr/include/c++/10/bits/stl_algo.h:3486:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::max(std::initializer_list<_Tp>, _Compare)'
 3486 |     max(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3486:5: note:   template argument deduction/substitution failed:
wall.cpp:42:23: note:   mismatched types 'std::initializer_list<_Tp>' and 'long long int'
   42 |   mn[p] = max(mn[p], h);
      |                       ^
wall.cpp: In function 'void applyMin(int, int)':
wall.cpp:46:23: error: no matching function for call to 'min(ll&, int&)'
   46 |   mx[p] = min(mx[p], h);
      |                       ^
In file included from /usr/include/c++/10/bits/specfun.h:45,
                 from /usr/include/c++/10/cmath:1927,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:41,
                 from wall.cpp:3:
/usr/include/c++/10/bits/stl_algobase.h:230:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::min(const _Tp&, const _Tp&)'
  230 |     min(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:230:5: note:   template argument deduction/substitution failed:
wall.cpp:46:23: note:   deduced conflicting types for parameter 'const _Tp' ('long long int' and 'int')
   46 |   mx[p] = min(mx[p], h);
      |                       ^
In file included from /usr/include/c++/10/bits/specfun.h:45,
                 from /usr/include/c++/10/cmath:1927,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:41,
                 from wall.cpp:3:
/usr/include/c++/10/bits/stl_algobase.h:278:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::min(const _Tp&, const _Tp&, _Compare)'
  278 |     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:278:5: note:   template argument deduction/substitution failed:
wall.cpp:46:23: note:   deduced conflicting types for parameter 'const _Tp' ('long long int' and 'int')
   46 |   mx[p] = min(mx[p], h);
      |                       ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from wall.cpp:3:
/usr/include/c++/10/bits/stl_algo.h:3468:5: note: candidate: 'template<class _Tp> constexpr _Tp std::min(std::initializer_list<_Tp>)'
 3468 |     min(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3468:5: note:   template argument deduction/substitution failed:
wall.cpp:46:23: note:   mismatched types 'std::initializer_list<_Tp>' and 'long long int'
   46 |   mx[p] = min(mx[p], h);
      |                       ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from wall.cpp:3:
/usr/include/c++/10/bits/stl_algo.h:3474:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::min(std::initializer_list<_Tp>, _Compare)'
 3474 |     min(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3474:5: note:   template argument deduction/substitution failed:
wall.cpp:46:23: note:   mismatched types 'std::initializer_list<_Tp>' and 'long long int'
   46 |   mx[p] = min(mx[p], h);
      |                       ^
wall.cpp:47:23: error: no matching function for call to 'min(ll&, int&)'
   47 |   mn[p] = min(mn[p], h);
      |                       ^
In file included from /usr/include/c++/10/bits/specfun.h:45,
                 from /usr/include/c++/10/cmath:1927,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:41,
                 from wall.cpp:3:
/usr/include/c++/10/bits/stl_algobase.h:230:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::min(const _Tp&, const _Tp&)'
  230 |     min(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:230:5: note:   template argument deduction/substitution failed:
wall.cpp:47:23: note:   deduced conflicting types for parameter 'const _Tp' ('long long int' and 'int')
   47 |   mn[p] = min(mn[p], h);
      |                       ^
In file included from /usr/include/c++/10/bits/specfun.h:45,
                 from /usr/include/c++/10/cmath:1927,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:41,
                 from wall.cpp:3:
/usr/include/c++/10/bits/stl_algobase.h:278:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::min(const _Tp&, const _Tp&, _Compare)'
  278 |     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:278:5: note:   template argument deduction/substitution failed:
wall.cpp:47:23: note:   deduced conflicting types for parameter 'const _Tp' ('long long int' and 'int')
   47 |   mn[p] = min(mn[p], h);
      |                       ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from wall.cpp:3:
/usr/include/c++/10/bits/stl_algo.h:3468:5: note: candidate: 'template<class _Tp> constexpr _Tp std::min(std::initializer_list<_Tp>)'
 3468 |     min(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3468:5: note:   template argument deduction/substitution failed:
wall.cpp:47:23: note:   mismatched types 'std::initializer_list<_Tp>' and 'long long int'
   47 |   mn[p] = min(mn[p], h);
      |                       ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from wall.cpp:3:
/usr/include/c++/10/bits/stl_algo.h:3474:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::min(std::initializer_list<_Tp>, _Compare)'
 3474 |     min(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3474:5: note:   template argument deduction/substitution failed:
wall.cpp:47:23: note:   mismatched types 'std::initializer_list<_Tp>' and 'long long int'
   47 |   mn[p] = min(mn[p], h);
      |                       ^