제출 #64596

#제출 시각아이디문제언어결과실행 시간메모리
64596nvmdava커다란 상품 (IOI17_prize)C++17
컴파일 에러
0 ms0 KiB
#include "prize.h" #include <bits/stdc++.h> using namespace std; vector<int> ans[210000]; int mx = -1, ll, rr, Q = -1; int find(int l, int r, bool q){ if(Q != -1){ return 0; } if(ans[l][0] == ans[r][0]){ return 0; } if(ll > r || rr < l){ return 0; } int m = (l + r) >> 1, L = m, R = m + 1; while(l < L){ if(L < ll){ break; } ans[L] =ask(L); if(ans[L][0] + ans[L][1] == mx){ break; } if(ans[L][0] + ans[L][1] == 0){ Q = L; return L; } if(ans[L][0] == 0){ ll = L + 1; break; } L--; } while(r > R){ if(R > rr){ break; } ans[R] =ask(R); if(ans[R][0] + ans[R][1] == mx){ break; } if(ans[R][0] + ans[R][1] == 0){ Q = R; return R; } if(ans[R][1] == 0){ rr = R - 1; break; } R++; } if(q == 1){ return max(find(l, L, 0), find(R, r, 0)); } return max(find(l, L, 1), find(R, r, 1)); } int find_best(int n) { ll = 0; rr = n - 1; for(int i = 0; i < 448; i++){ ans[i] = ask(i); if(ans[i][0] + ans[i][1] == 0){ return i; } mx = max(mx, ans[i][0] + ans[i][1]); } int l = 0, r = n - 1; while(true){ if(ans[l][0] + ans[l][1] == mx){ break; } l++; } while(true){ ans[r] = ask(r); if(ans[r][0] + ans[r][1] == mx){ break; } if(ans[r][0] + ans[r][1] == 0){ return r; } r--; } return find(l, r, 0); }

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

In file included from /usr/include/c++/7/algorithm:62:0,
                 from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:65,
                 from prize.cpp:2:
/usr/include/c++/7/bits/stl_algo.h: In instantiation of '_Iterator std::__find_if(_Iterator, _Iterator, _Predicate) [with _Iterator = int; _Predicate = __gnu_cxx::__ops::_Iter_equals_val<const int>]':
/usr/include/c++/7/bits/stl_algo.h:3907:28:   required from '_IIter std::find(_IIter, _IIter, const _Tp&) [with _IIter = int; _Tp = int]'
prize.cpp:56:26:   required from here
/usr/include/c++/7/bits/stl_algo.h:162:34: error: no matching function for call to '__iterator_category(int&)'
          std::__iterator_category(__first));
          ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
In file included from /usr/include/c++/7/bits/stl_algobase.h:65:0,
                 from /usr/include/c++/7/vector:60,
                 from prize.h:1,
                 from prize.cpp:1:
/usr/include/c++/7/bits/stl_iterator_base_types.h:205:5: note: candidate: template<class _Iter> constexpr typename std::iterator_traits<_Iterator>::iterator_category std::__iterator_category(const _Iter&)
     __iterator_category(const _Iter&)
     ^~~~~~~~~~~~~~~~~~~
/usr/include/c++/7/bits/stl_iterator_base_types.h:205:5: note:   template argument deduction/substitution failed:
/usr/include/c++/7/bits/stl_iterator_base_types.h: In substitution of 'template<class _Iter> constexpr typename std::iterator_traits<_Iterator>::iterator_category std::__iterator_category(const _Iter&) [with _Iter = int]':
/usr/include/c++/7/bits/stl_algo.h:162:34:   required from '_Iterator std::__find_if(_Iterator, _Iterator, _Predicate) [with _Iterator = int; _Predicate = __gnu_cxx::__ops::_Iter_equals_val<const int>]'
/usr/include/c++/7/bits/stl_algo.h:3907:28:   required from '_IIter std::find(_IIter, _IIter, const _Tp&) [with _IIter = int; _Tp = int]'
prize.cpp:56:26:   required from here
/usr/include/c++/7/bits/stl_iterator_base_types.h:205:5: error: no type named 'iterator_category' in 'struct std::iterator_traits<int>'