제출 #1282366

#제출 시각아이디문제언어결과실행 시간메모리
1282366iamhereforfunTeams (IOI15_teams)C++20
컴파일 에러
0 ms0 KiB
#include <vector> #include <algorithm> using namespace std; const int MAXN = 500000; class SegmentTree { private: vector<int> tree; int n; void build_tree(int node, int l, int r, const vector<int>& arr) { if (l == r) { tree[node] = arr[l]; return; } int mid = (l + r) / 2; build_tree(2 * node, l, mid, arr); build_tree(2 * node + 1, mid + 1, r, arr); tree[node] = min(tree[2 * node], tree[2 * node + 1]); } int query_tree(int node, int l, int r, int ql, int qr) { if (ql > r || qr < l) return 1e9; if (ql <= l && r <= qr) return tree[node]; int mid = (l + r) / 2; int left_val = query_tree(2 * node, l, mid, ql, qr); int right_val = query_tree(2 * node + 1, mid + 1, r, ql, qr); return min(left_val, right_val); } public: void build(const vector<int>& arr, int l, int r) { n = r - l + 1; tree.resize(4 * n); build_tree(1, l, r, arr); } int query(int ql, int qr) { return query_tree(1, 1, n, ql, qr); } }; vector<int> H; SegmentTree segTree; void init(int N, int A[], int B[]) { int n = N; vector<int> freq(n + 2, 0); for (int i = 0; i < n; i++) { int b = B[i]; if (b > n) b = n; freq[b]++; } H.resize(n + 1); H[n] = freq[n]; for (int x = n - 1; x >= 1; x--) { H[x] = H[x + 1] + freq[x]; } segTree.build(H, 1, n); } int can(int M, int K[]) { sort(K.begin(), K.end()); long long total = 0; for (int k : K) total += k; vector<long long> SS(M); for (int i = M - 1; i >= 0; i--) { SS[i] = total; total -= K[i]; } for (int i = 0; i < M; i++) { int L = (i == 0) ? 1 : K[i - 1] + 1; int R = K[i]; if (L > R) continue; int minH = segTree.query(L, R); if (minH < SS[i]) { return 0; } } return 1; }

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

teams.cpp: In function 'int can(int, int*)':
teams.cpp:60:12: error: request for member 'begin' in 'K', which is of non-class type 'int*'
   60 |     sort(K.begin(), K.end());
      |            ^~~~~
teams.cpp:60:23: error: request for member 'end' in 'K', which is of non-class type 'int*'
   60 |     sort(K.begin(), K.end());
      |                       ^~~
teams.cpp:62:18: error: 'begin' was not declared in this scope
   62 |     for (int k : K) total += k;
      |                  ^
teams.cpp:62:18: note: suggested alternatives:
In file included from /usr/include/c++/13/vector:69,
                 from teams.cpp:1:
/usr/include/c++/13/bits/range_access.h:114:37: note:   'std::begin'
  114 |   template<typename _Tp> const _Tp* begin(const valarray<_Tp>&) noexcept;
      |                                     ^~~~~
In file included from /usr/include/c++/13/bits/ranges_util.h:34,
                 from /usr/include/c++/13/tuple:44,
                 from /usr/include/c++/13/bits/uses_allocator_args.h:38,
                 from /usr/include/c++/13/bits/memory_resource.h:41,
                 from /usr/include/c++/13/vector:80:
/usr/include/c++/13/bits/ranges_base.h:489:44: note:   'std::ranges::__cust::begin'
  489 |     inline constexpr __cust_access::_Begin begin{};
      |                                            ^~~~~
In file included from /usr/include/c++/13/bits/stl_iterator_base_types.h:71,
                 from /usr/include/c++/13/bits/stl_algobase.h:65,
                 from /usr/include/c++/13/vector:62:
/usr/include/c++/13/bits/iterator_concepts.h:984:10: note:   'std::ranges::__cust_access::begin'
  984 |     void begin(const auto&) = delete;
      |          ^~~~~
teams.cpp:62:18: error: 'end' was not declared in this scope
   62 |     for (int k : K) total += k;
      |                  ^
teams.cpp:62:18: note: suggested alternatives:
/usr/include/c++/13/bits/range_access.h:116:37: note:   'std::end'
  116 |   template<typename _Tp> const _Tp* end(const valarray<_Tp>&) noexcept;
      |                                     ^~~
/usr/include/c++/13/bits/ranges_base.h:490:42: note:   'std::ranges::__cust::end'
  490 |     inline constexpr __cust_access::_End end{};
      |                                          ^~~
/usr/include/c++/13/bits/ranges_base.h:137:10: note:   'std::ranges::__cust_access::end'
  137 |     void end(const auto&) = delete;
      |          ^~~