Submission #404799

#TimeUsernameProblemLanguageResultExecution timeMemory
404799jjang36524Circle selection (APIO18_circle_selection)C++14
Compilation error
0 ms0 KiB
#include <iostream> #include <algorithm> #include <unordered_map> #include <vector> #define int long long using namespace std; unordered_map<int, vector<int>>x; int po[300100][2]; int so[300100][2]; int pre[300100]; int num[300100]; signed main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int N; cin >> N; int i; for (i = 0; i < N; i++) { int a, b, c; cin >> a >> b >> c; a += 1LL << 30; b += 1LL << 30; pre[i] = c; so[i][0] = -c; so[i][1] = i; po[i][0] = a; po[i][1] = b; } sort(so, so+N); for (i = 0; i < N; i++) { so[i][0] *= -1; } int gr = 30; for (i = 0; i < N; i++) { x[po[i][0] / (1LL << gr) * (1LL << 31) + po[i][1] / (1LL << gr)].push_back(i); } for (i = 0; i < N; i++) { if (num[so[i][1]]) continue; while ((1LL << gr) >= so[i][0] * 2) { gr--; x.clear(); int i; for (i = 0; i < N; i++) { if (num[i]) continue; x[po[i][0] / (1LL << gr) * (1LL << 31) + po[i][1] / (1LL << gr)].push_back(i); } } int xx = po[so[i][1]][0] / (1LL << gr); int y = po[so[i][1]][1] / (1LL << gr); int j, k; for (j = xx - 2; j <= xx + 2; j++) { for (k = y - 2; k <= y + 2; k++) { if (!x.count(j * (1LL << 31) + k)) continue; for (auto l = x[j * (1LL << 31) + k].begin(); l != x[j * (1LL << 31) + k].end(); l++) { int le = *l; if (num[le]) continue; int xxx = (po[so[i][1]][0] - po[le][0]); int yyy = (po[so[i][1]][1] - po[le][1]); int rrr = (so[i][0] + pre[le]); if (xxx * xxx + yyy * yyy <= rrr * rrr) { num[le] = so[i][1] + 1; } } } } } for (i = 0; i < N; i++) { cout << num[i] << ' '; } }

Compilation message (stderr)

In file included from /usr/include/c++/10/algorithm:62,
                 from circle_selection.cpp:2:
/usr/include/c++/10/bits/stl_algo.h: In instantiation of 'void std::__insertion_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = long long int (*)[2]; _Compare = __gnu_cxx::__ops::_Iter_less_iter]':
/usr/include/c++/10/bits/stl_algo.h:1886:25:   required from 'void std::__final_insertion_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = long long int (*)[2]; _Compare = __gnu_cxx::__ops::_Iter_less_iter]'
/usr/include/c++/10/bits/stl_algo.h:1977:31:   required from 'void std::__sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = long long int (*)[2]; _Compare = __gnu_cxx::__ops::_Iter_less_iter]'
/usr/include/c++/10/bits/stl_algo.h:4859:18:   required from 'void std::sort(_RAIter, _RAIter) [with _RAIter = long long int (*)[2]]'
circle_selection.cpp:31:15:   required from here
/usr/include/c++/10/bits/stl_algo.h:1849:3: error: array must be initialized with a brace-enclosed initializer
 1849 |   __val = _GLIBCXX_MOVE(*__i);
      |   ^~~~~
/usr/include/c++/10/bits/stl_algo.h:1851:17: error: invalid array assignment
 1851 |        *__first = _GLIBCXX_MOVE(__val);
      |                 ^
In file included from /usr/include/c++/10/bits/stl_algo.h:61,
                 from /usr/include/c++/10/algorithm:62,
                 from circle_selection.cpp:2:
/usr/include/c++/10/bits/stl_heap.h: In instantiation of 'void std::__make_heap(_RandomAccessIterator, _RandomAccessIterator, _Compare&) [with _RandomAccessIterator = long long int (*)[2]; _Compare = __gnu_cxx::__ops::_Iter_less_iter]':
/usr/include/c++/10/bits/stl_algo.h:1666:23:   required from 'void std::__heap_select(_RandomAccessIterator, _RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = long long int (*)[2]; _Compare = __gnu_cxx::__ops::_Iter_less_iter]'
/usr/include/c++/10/bits/stl_algo.h:1937:25:   required from 'void std::__partial_sort(_RandomAccessIterator, _RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = long long int (*)[2]; _Compare = __gnu_cxx::__ops::_Iter_less_iter]'
/usr/include/c++/10/bits/stl_algo.h:1953:27:   required from 'void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size, _Compare) [with _RandomAccessIterator = long long int (*)[2]; _Size = long int; _Compare = __gnu_cxx::__ops::_Iter_less_iter]'
/usr/include/c++/10/bits/stl_algo.h:1974:25:   required from 'void std::__sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = long long int (*)[2]; _Compare = __gnu_cxx::__ops::_Iter_less_iter]'
/usr/include/c++/10/bits/stl_algo.h:4859:18:   required from 'void std::sort(_RAIter, _RAIter) [with _RAIter = long long int (*)[2]]'
circle_selection.cpp:31:15:   required from here
/usr/include/c++/10/bits/stl_heap.h:354:15: error: array must be initialized with a brace-enclosed initializer
  354 |    _ValueType __value = _GLIBCXX_MOVE(*(__first + __parent));
      |               ^~~~~~~
/usr/include/c++/10/bits/stl_heap.h: In instantiation of 'void std::__pop_heap(_RandomAccessIterator, _RandomAccessIterator, _RandomAccessIterator, _Compare&) [with _RandomAccessIterator = long long int (*)[2]; _Compare = __gnu_cxx::__ops::_Iter_less_iter]':
/usr/include/c++/10/bits/stl_algo.h:1669:19:   required from 'void std::__heap_select(_RandomAccessIterator, _RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = long long int (*)[2]; _Compare = __gnu_cxx::__ops::_Iter_less_iter]'
/usr/include/c++/10/bits/stl_algo.h:1937:25:   required from 'void std::__partial_sort(_RandomAccessIterator, _RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = long long int (*)[2]; _Compare = __gnu_cxx::__ops::_Iter_less_iter]'
/usr/include/c++/10/bits/stl_algo.h:1953:27:   required from 'void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size, _Compare) [with _RandomAccessIterator = long long int (*)[2]; _Size = long int; _Compare = __gnu_cxx::__ops::_Iter_less_iter]'
/usr/include/c++/10/bits/stl_algo.h:1974:25:   required from 'void std::__sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = long long int (*)[2]; _Compare = __gnu_cxx::__ops::_Iter_less_iter]'
/usr/include/c++/10/bits/stl_algo.h:4859:18:   required from 'void std::sort(_RAIter, _RAIter) [with _RAIter = long long int (*)[2]]'
circle_selection.cpp:31:15:   required from here
/usr/include/c++/10/bits/stl_heap.h:261:18: error: array must be initialized with a brace-enclosed initializer
  261 |       _ValueType __value = _GLIBCXX_MOVE(*__result);
      |                  ^~~~~~~
/usr/include/c++/10/bits/stl_heap.h:262:17: error: invalid array assignment
  262 |       *__result = _GLIBCXX_MOVE(*__first);
      |                 ^