# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
797051 | 2023-07-29T05:24:26 Z | vjudge1 | Road Construction (JOI21_road_construction) | C++17 | Compilation error |
0 ms | 0 KB |
#include <bits/stdc++.h> #define fi first #define se second const int N = 200200; using namespace std; int n; int id[N]; int t[N]; pair < int, int > a[N]; vector < pair < int, int > > v; void upd(int x, int g) { while(x < N){ t[x] += g; x += x & -x; } } int get_c(int x) { int res = 0; while(x > 0){ res += t[x]; x -= x & -x; } return res; } long long get(long long D) { long long res = 0; for(int i = 0; i < N; i++) t[i] = 0; for(int i = 1, j = 1; i <= n; i++){ if(i > 1){ upd(id[i - 1], 1); } while(j < i && a[i].fi - a[j].fi > D){ upd(id[j], -1); j += 1; } int l = lower_bound(v.begin(), v.end(), make_pair(a[i].se - D, 0)) - v.begin(); int r = lower_bound(v.begin(), v.end(), make_pair(a[i].se + D + 1, 0)) - v.begin() - 1; if(l <= r){ res += get_c(v[r].se) - get_c(v[l].se - 1); } } return res; } int main() { ios_base::sync_with_stdio(0); //freopen("input.txt", "r", stdin); //freopen("output.txt", "w", stdout); long long k; cin >> n >> k; for(int i = 1; i <= n; i++){ int x, y; cin >> x >> y; a[i] = {x + y, x - y}; } sort(a + 1, a + n + 1); v.push_back({-2e9, 0}); v.push_back({2e9, 0}); for(int i = 1; i <= n; i++){ v.push_back({a[i].se, i}); } sort(v.begin(), v.end()); for(int i = 0, j = 0; i < v.size(); i++){ if(i > 0 && v[i].fi > v[i - 1].fi){ j += 1; } id[v[i].se] = j; v[i].se = j; } long long l = 1, r = 5e8; while(l < r){ long long m = (l + r) / 2; if(get(m) >= k){ r = m; } else{ l = m + 1; } } cout << l << "\n"; }
Compilation message
road_construction.cpp: In function 'int main()': road_construction.cpp:80:33: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare] 80 | for(int i = 0, j = 0; i < v.size(); i++){ | ~~^~~~~~~~~~ In file included from /usr/include/c++/10/bits/stl_algobase.h:71, 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 road_construction.cpp:1: /usr/include/c++/10/bits/predefined_ops.h: In instantiation of 'bool __gnu_cxx::__ops::_Iter_less_val::operator()(_Iterator, _Value&) const [with _Iterator = __gnu_cxx::__normal_iterator<std::pair<int, int>*, std::vector<std::pair<int, int> > >; _Value = const std::pair<long long int, int>]': /usr/include/c++/10/bits/stl_algobase.h:1324:14: required from '_ForwardIterator std::__lower_bound(_ForwardIterator, _ForwardIterator, const _Tp&, _Compare) [with _ForwardIterator = __gnu_cxx::__normal_iterator<std::pair<int, int>*, std::vector<std::pair<int, int> > >; _Tp = std::pair<long long int, int>; _Compare = __gnu_cxx::__ops::_Iter_less_val]' /usr/include/c++/10/bits/stl_algobase.h:1359:32: required from '_ForwardIterator std::lower_bound(_ForwardIterator, _ForwardIterator, const _Tp&) [with _ForwardIterator = __gnu_cxx::__normal_iterator<std::pair<int, int>*, std::vector<std::pair<int, int> > >; _Tp = std::pair<long long int, int>]' road_construction.cpp:47:82: required from here /usr/include/c++/10/bits/predefined_ops.h:67:22: error: no match for 'operator<' (operand types are 'std::pair<int, int>' and 'const std::pair<long long int, int>') 67 | { return *__it < __val; } | ~~~~~~^~~~~~~ In file included from /usr/include/c++/10/bits/stl_algobase.h:67, 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 road_construction.cpp:1: /usr/include/c++/10/bits/stl_iterator.h:1096:5: note: candidate: 'template<class _IteratorL, class _IteratorR, class _Container> bool __gnu_cxx::operator<(const __gnu_cxx::__normal_iterator<_IteratorL, _Container>&, const __gnu_cxx::__normal_iterator<_IteratorR, _Container>&)' 1096 | operator<(const __normal_iterator<_IteratorL, _Container>& __lhs, | ^~~~~~~~ /usr/include/c++/10/bits/stl_iterator.h:1096:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/10/bits/stl_algobase.h:71, 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 road_construction.cpp:1: /usr/include/c++/10/bits/predefined_ops.h:67:22: note: 'std::pair<int, int>' is not derived from 'const __gnu_cxx::__normal_iterator<_IteratorL, _Container>' 67 | { return *__it < __val; } | ~~~~~~^~~~~~~ In file included from /usr/include/c++/10/bits/stl_algobase.h:67, 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 road_construction.cpp:1: /usr/include/c++/10/bits/stl_iterator.h:1104:5: note: candidate: 'template<class _Iterator, class _Container> bool __gnu_cxx::operator<(const __gnu_cxx::__normal_iterator<_Iterator, _Container>&, const __gnu_cxx::__normal_iterator<_Iterator, _Container>&)' 1104 | operator<(const __normal_iterator<_Iterator, _Container>& __lhs, | ^~~~~~~~ /usr/include/c++/10/bits/stl_iterator.h:1104:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/10/bits/stl_algobase.h:71, 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 road_construction.cpp:1: /usr/include/c++/10/bits/predefined_ops.h:67:22: note: 'std::pair<int, int>' is not derived from 'const __gnu_cxx::__normal_iterator<_Iterator, _Container>' 67 | { return *__it < __val; } | ~~~~~~^~~~~~~ In file included from /usr/include/c++/10/regex:62, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:110, from road_construction.cpp:1: /usr/include/c++/10/bits/regex.h:1075:5: note: candidate: 'template<class _BiIter> bool std::__cxx11::operator<(const std::__cxx11::sub_match<_BiIter>&, const std::__cxx11::sub_match<_BiIter>&)' 1075 | operator<(const sub_match<_BiIter>& __lhs, const sub_match<_BiIter>& __rhs) | ^~~~~~~~ /usr/include/c++/10/bits/regex.h:1075:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/10/bits/stl_algobase.h:71, 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 road_construction.cpp:1: /usr/include/c++/10/bits/predefined_ops.h:67:22: note: 'std::pair<int, int>' is not derived from 'const std::__cxx11::sub_match<_BiIter>' 67 | { return *__it < __val; } | ~~~~~~^~~~~~~ In file included from /usr/include/c++/10/regex:62, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:110, from road_construction.cpp:1: /usr/include/c++/10/bits/regex.h:1156:5: note: candidate: 'template<class _Bi_iter, class _Ch_traits, class _Ch_alloc> bool std::__cxx11::operator<(std::__cxx11::__sub_match_string<_Bi_iter, _Ch_traits, _Ch_alloc>&, const std::__cxx11::sub_match<_BiIter>&)' 1156 | operator<(const __sub_match_string<_Bi_iter, _Ch_traits, _Ch_alloc>& __lhs, | ^~~~~~~~ /usr/include/c++/10/bits/regex.h:1156:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/10/bits/stl_algobase.h:71, 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 road_construction.cpp:1: /usr/include/c++/10/bits/predefined_ops.h:67:22: note: 'std::pair<int, int>' is not derived from 'std::__cxx11::__sub_match_string<_Bi_iter, _Ch_traits, _Ch_alloc>' 67 | { return *__it < __val; } | ~~~~~~^~~~~~~ In file included from /usr/include/c++/10/regex:62, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:110, from road_construction.cpp:1: /usr/include/c++/10/bits/regex.h:1249:5: note: candidate: 'template<class _Bi_iter, class _Ch_traits, class _Ch_alloc> bool std::__cxx11::operator<(const std::__cxx11::sub_match<_BiIter>&, std::__cxx11::__sub_match_string<_Bi_iter, _Ch_traits, _Ch_alloc>&)' 1249 | operator<(const sub_match<_Bi_iter>& __lhs, | ^~~~~~~~ /usr/include/c++/10/bits/regex.h:1249:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/10/bits/stl_algobase.h:71, 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 road_construction.cpp:1: /usr/include/c++/10/bits/predefined_ops.h:67:22: note: 'std::pair<int, int>' is not derived from 'const std::__cxx11::sub_match<_BiIter>' 67 | { return *__it < __val; } | ~~~~~~^~~~~~~ In file included from /usr/include/c++/10/regex:62, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:110, from road_construction.cpp:1: /usr/include/c++/10/bits/regex.h:1323:5: note: candidate: 'template<class _Bi_iter> bool std::__cxx11::operator<(const typename std::iterator_traits<_Iter>::value_type*, const std::__cxx11::sub_match<_BiIter>&)' 1323 | operator<(typename iterator_traits<_Bi_iter>::value_type const* __lhs, | ^~~~~~~~ /usr/include/c++/10/bits/regex.h:1323:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/10/bits/stl_algobase.h:71, 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 road_construction.cpp:1: /usr/include/c++/10/bits/predefined_ops.h:67:22: note: 'const std::pair<long long int, int>' is not derived from 'const std::__cxx11::sub_match<_BiIter>' 67 | { return *__it < __val; } | ~~~~~~^~~~~~~ In file included from /usr/include/c++/10/regex:62, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:110, from road_construction.cpp:1: /usr/include/c++/10/bits/regex.h:1417:5: note: candidate: 'template<class _Bi_iter> bool std::__cxx11::operator<(const std::__cxx11::sub_match<_BiIter>&, const typename std::iterator_traits<_Iter>::value_type*)' 1417 | operator<(const sub_match<_Bi_iter>& __lhs, | ^~~~~~~~ /usr/include/c++/10/bits/regex.h:1417:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/10/bits/stl_algobase.h:71, 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 road_construction.cpp:1: /usr/include/c++/10/bits/predefined_ops.h:67:22: note: 'std::pair<int, int>' is not derived from 'const std::__cxx11::sub_match<_BiIter>' 67 | { return *__it < __val; } | ~~~~~~^~~~~~~ In file included from /usr/include/c++/10/regex:62, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:110, from road_construction.cpp:1: /usr/include/c++/10/bits/regex.h:1492:5: note: candidate: 'template<class _Bi_iter> bool std::__cxx11::operator<(const typename std::iterator_traits<_Iter>::value_type&, const std::__cxx11::sub_match<_BiIter>&)' 1492 | operator<(typename iterator_traits<_Bi_iter>::value_type const& __lhs, | ^~~~~~~~ /usr/include/c++/10/bits/regex.h:1492:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/10/bits/stl_algobase.h:71, 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 road_construction.cpp:1: /usr/include/c++/10/bits/predefined_ops.h:67:22: note: 'const std::pair<long long int, int>' is not derived from 'const std::__cxx11::sub_match<_BiIter>' 67 | { return *__it < __val; } | ~~~~~~^~~~~~~ In file included from /usr/include/c++/10/regex:62, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:110, from road_construction.cpp:1: /usr/include/c++/10/bits/regex.h:1592:5: note: candidate: 'template<class _Bi_iter> bool std::__cxx11::operator<(const std::__cxx11::sub_match<_BiIter>&, const typename std::iterator_traits<_Iter>::value_type&)' 1592 | operator<(const sub_match<_Bi_iter>& __lhs, | ^~~~~~~~ /usr/include/c++/10/bits/regex.h:1592:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/10/bits/stl_algobase.h:71, 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 road_construction.cpp:1: /usr/include/c++/10/bits/predefined_ops.h:67:22: note: 'std::pair<int, int>' is not derived from 'const std::__cxx11::sub_match<_BiIter>' 67 | { return *__it < __val; } | ~~~~~~^~~~~~~ In file included from /usr/include/c++/10/bits/stl_algobase.h:64, 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 road_construction.cpp:1: /usr/include/c++/10/bits/stl_pair.h:489:5: note: candidate: 'template<class _T1, class _T2> constexpr bool std::operator<(const std::pair<_T1, _T2>&, const std::pair<_T1, _T2>&)' 489 | operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) | ^~~~~~~~ /usr/include/c++/10/bits/stl_pair.h:489:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/10/bits/stl_algobase.h:71, 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 road_construction.cpp:1: /usr/include/c++/10/bits/predefined_ops.h:67:22: note: deduced conflicting types for parameter '_T1' ('int' and 'long long int') 67 | { return *__it < __val; } | ~~~~~~^~~~~~~ In file included from /usr/include/c++/10/bits/stl_algobase.h:67, 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 road_construction.cpp:1: /usr/include/c++/10/bits/stl_iterator.h:366:5: note: candidate: 'template<class _Iterator> constexpr bool std::operator<(const std::reverse_iterator<_Iterator>&, const std::reverse_iterator<_Iterator>&)' 366 | operator<(const reverse_iterator<_Iterator>& __x, | ^~~~~~~~ /usr/include/c++/10/bits/stl_iterator.h:366:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/10/bits/stl_algobase.h:71, 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 road_construction.cpp:1: /usr/include/c++/10/bits/predefined_ops.h:67:22: note: 'std::pair<int, int>' is not derived from 'const std::reverse_iterator<_Iterator>' 67 | { return *__it < __val; } | ~~~~~~^~~~~~~ In file included from /usr/include/c++/10/bits/stl_algobase.h:67, 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 road_construction.cpp:1: /usr/include/c++/10/bits/stl_iterator.h:404:5: note: candidate: 'template<class _IteratorL, class _IteratorR> constexpr bool std::operator<(const std::reverse_iterator<_Iterator>&, const std::reverse_iterator<_IteratorR>&)' 404 | operator<(const reverse_iterator<_IteratorL>& __x, | ^~~~~~~~ /usr/include/c++/10/bits/stl_iterator.h:404:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/10/bits/stl_algobase.h:71, 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 road_construction.cpp:1: /usr/include/c++/10/bits/predefined_ops.h:67:22: note: 'std::pair<int, int>' is not derived from 'const std::reverse_iterator<_Iterator>' 67 | { return *__it < __val; } | ~~~~~~^~~~~~~ In file included from /usr/include/c++/10/bits/stl_algobase.h:67, 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 road_construction.cpp:1: /usr/include/c++/10/bits/stl_iterator.h:1451:5: note: candidate: 'template<class _IteratorL, class _IteratorR> constexpr bool std::operator<(const std::move_iterator<_IteratorL>&, const std::move_iterator<_IteratorR>&)' 1451 | operator<(const move_iterator<_IteratorL>& __x, | ^~~~~~~~ /usr/include/c++/10/bits/stl_iterator.h:1451:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/10/bits/stl_algobase.h:71, 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 road_construction.cpp:1: /usr/include/c++/10/bits/predefined_ops.h:67:22: note: 'std::pair<int, int>' is not derived from 'const std::move_iterator<_IteratorL>' 67 | { return *__it < __val; } | ~~~~~~^~~~~~~ In file included from /usr/include/c++/10/bits/stl_algobase.h:67, 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 road_construction.cpp:1: /usr/include/c++/10/bits/stl_iterator.h:1507:5: note: candidate: 'template<class _Iterator> constexpr bool std::operator<(const std::move_iterator<_IteratorL>&, const std::move_iterator<_IteratorL>&)' 1507 | operator<(const move_iterator<_Iterator>& __x, | ^~~~~~~~ /usr/include/c++/10/bits/stl_iterator.h:1507:5: note: template argument deduction/substitution failed: In file included from /usr/include/c++/10/bits/stl_algobase.h:71, 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 road_construction.cpp:1: /usr/include/c++/10/bits/predefined_ops.h:67:22: note: 'std::pair<int, int>' is not derived from 'const std::move_iterator<_IteratorL>' 67 | { return *__it < __val; } | ~~~~~~^~~~~~~ In file included from /usr/include/c++/10/bits/basic_string.h:48, from /usr/include/c++/10/string:55, from /usr/include/c++/10/bits/locale_classes.h:40, from /usr/include/c++/10/bits/ios_base.h:41, from /usr/include/c++/10/ios:42, from /usr/include/c++/10/istream:38, from /usr/include/c++/10/sstream:38, from /usr/include/c++/10/complex:45, from /usr/include/c++/10/ccomplex:39, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54, from road_construction.cpp:1: /usr/include/c++/10/string_view:544:5: note: candidate: 'template<class _CharT, class _Traits> constexpr bool std::operator<(std::basic_string_view<_CharT, _Traits>, std::basic_string_view<_CharT, _Traits>)' 544 | operator< (basic_string_view<_