Submission #937147

#TimeUsernameProblemLanguageResultExecution timeMemory
937147amirhoseinfar1385Harbingers (CEOI09_harbingers)C++17
Compilation error
0 ms0 KiB
#include<bits/stdc++.h> using namespace std; const int maxn=100000+10; long long inf=1e18,kaf=(1<<17); struct func{ func(){ fas=shib=-inf; } long long fas,shib; long long inersect(func f){ long long sor=fas-f.fas,makh=f.shib-shib; if(makh==0){ if(sor>0){ return -inf; } return inf; } if(makh<0){ makh*=-1; sor*=-1; } if(sor<0){ return sor/makh; } return (sor+makh-1)/makh; } bool operator <(const func f)const { return shib<f.shib; } }fakefunc; struct cht{ vector<pair<long long,func>>st; void add(func f){ while((int)st.size()>0){ int x=f.inersect(st.back().second); if(x<=st.back().first){ st.pop_back(); continue; }else{ st.push_back(make_pair(x,f)); break; } } if((int)st.size()==0){ st.push_back(make_pair(-inf,f)); } } long long get(int x){ int p=lower_bound(st.begin(),st.end(),make_pair(x+1,fakefunc))-st.begin()-1; if(p<0){ return -inf; } ////cout<<st.back().second.fas<<" "<<st.back().second.shib<<" "<<st.back().first<<endl; return st[p].second.fas+x*st[p].second.shib; } }; struct segment{ cht ch[(1<<18)]; void upd(int i,int l,int r,int tl,int tr,func f){ if(l>r||l>tr||r<tl||tl>tr){ return ; } if(l>=tl&&r<=tr){ ch[i].add(f); return ; } int m=(l+r)>>1; upd((i<<1),l,m,tl,tr,f); upd((i<<1)^1,m+1,r,tl,tr,f); } int pors(int x,int v){ int ret=-inf; x+=kaf; while(x>0){ ret=max(ret,ch[x].get(v)); x>>=1; } return ret; } }seg; struct yal{ int u,v,w; int getad(int fu){ return (u^v^fu); } }alle[maxn]; int n,timea=0,high[maxn],para[maxn]; long long dp[maxn]; pair<int,int>stf[maxn],all[maxn]; vector<int>adj[maxn]; void dfs(int u,int par=0,int len=0){ timea++; para[u]=par; high[u]=len; stf[u].first=timea; for(auto x:adj[u]){ int v=alle[x].getad(u); if(v!=par){ dfs(v,u,len+alle[x].w); } } stf[u].second=timea; } void vorod(){ cin>>n; for(int i=0;i<n-1;i++){ cin>>alle[i].u>>alle[i].v>>alle[i].w; adj[alle[i].u].push_back(i); adj[alle[i].v].push_back(i); } for(int i=2;i<=n;i++){ cin>>all[i].first>>all[i].second; } } void pre(){ dfs(1); } void upd(int u){ dp[u]=1ll*min(-seg.pors(stf[u].first,all[u].second),0ll)+all[u].first+1ll*all[u].second*high[u]; func f; f.fas=-dp[u]; f.shib=high[u]; seg.upd(1,0,kaf-1,stf[u].first,stf[u].second,f); } void solve(int u=1){ upd(u); for(auto x:adj[u]){ int v=alle[x].getad(u); if(v!=para[u]){ solve(v); } } } void khor(){ for(int i=2;i<=n;i++){ cout<<dp[i]<<" "; } cout<<"\n"; } int main(){ ios::sync_with_stdio(0); cin.tie(0); //cout.tie(0); //freopen("inp.txt","r",stdin); vorod(); pre(); solve(); khor(); }

Compilation message (stderr)

harbingers.cpp: In member function 'int segment::pors(int, int)':
harbingers.cpp:76:28: error: no matching function for call to 'max(int&, long long int)'
   76 |    ret=max(ret,ch[x].get(v));
      |                            ^
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 harbingers.cpp:1:
/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:
harbingers.cpp:76:28: note:   deduced conflicting types for parameter 'const _Tp' ('int' and 'long long int')
   76 |    ret=max(ret,ch[x].get(v));
      |                            ^
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 harbingers.cpp:1:
/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:
harbingers.cpp:76:28: note:   deduced conflicting types for parameter 'const _Tp' ('int' and 'long long int')
   76 |    ret=max(ret,ch[x].get(v));
      |                            ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from harbingers.cpp:1:
/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:
harbingers.cpp:76:28: note:   mismatched types 'std::initializer_list<_Tp>' and 'int'
   76 |    ret=max(ret,ch[x].get(v));
      |                            ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from harbingers.cpp:1:
/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:
harbingers.cpp:76:28: note:   mismatched types 'std::initializer_list<_Tp>' and 'int'
   76 |    ret=max(ret,ch[x].get(v));
      |                            ^
harbingers.cpp: In function 'void upd(int)':
harbingers.cpp:125:57: error: no matching function for call to 'min(int, long long int)'
  125 |  dp[u]=1ll*min(-seg.pors(stf[u].first,all[u].second),0ll)+all[u].first+1ll*all[u].second*high[u];
      |                                                         ^
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 harbingers.cpp:1:
/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:
harbingers.cpp:125:57: note:   deduced conflicting types for parameter 'const _Tp' ('int' and 'long long int')
  125 |  dp[u]=1ll*min(-seg.pors(stf[u].first,all[u].second),0ll)+all[u].first+1ll*all[u].second*high[u];
      |                                                         ^
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 harbingers.cpp:1:
/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:
harbingers.cpp:125:57: note:   deduced conflicting types for parameter 'const _Tp' ('int' and 'long long int')
  125 |  dp[u]=1ll*min(-seg.pors(stf[u].first,all[u].second),0ll)+all[u].first+1ll*all[u].second*high[u];
      |                                                         ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from harbingers.cpp:1:
/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:
harbingers.cpp:125:57: note:   mismatched types 'std::initializer_list<_Tp>' and 'int'
  125 |  dp[u]=1ll*min(-seg.pors(stf[u].first,all[u].second),0ll)+all[u].first+1ll*all[u].second*high[u];
      |                                                         ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from harbingers.cpp:1:
/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:
harbingers.cpp:125:57: note:   mismatched types 'std::initializer_list<_Tp>' and 'int'
  125 |  dp[u]=1ll*min(-seg.pors(stf[u].first,all[u].second),0ll)+all[u].first+1ll*all[u].second*high[u];
      |                                                         ^
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 harbingers.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<long long int, func>*, std::vector<std::pair<long long int, func> > >; _Value = const std::pair<int, func>]':
/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<long long int, func>*, std::vector<std::pair<long long int, func> > >; _Tp = std::pair<int, func>; _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<long long int, func>*, std::vector<std::pair<long long int, func> > >; _Tp = std::pair<int, func>]'
harbingers.cpp:49:64:   required from here
/usr/include/c++/10/bits/predefined_ops.h:67:22: error: no match for 'operator<' (operand types are 'std::pair<long long int, func>' and 'const std::pair<int, func>')
   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 harbingers.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 harbingers.cpp:1:
/usr/include/c++/10/bits/predefined_ops.h:67:22: note:   'std::pair<long long int, func>' 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 harbingers.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 harbingers.cpp:1:
/usr/include/c++/10/bits/predefined_ops.h:67:22: note:   'std::pair<long long int, func>' 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 harbingers.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 harbingers.cpp:1:
/usr/include/c++/10/bits/predefined_ops.h:67:22: note:   'std::pair<long long int, func>' 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 harbingers.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 harbingers.cpp:1:
/usr/include/c++/10/bits/predefined_ops.h:67:22: note:   'std::pair<long long int, func>' 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 harbingers.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 harbingers.cpp:1:
/usr/include/c++/10/bits/predefined_ops.h:67:22: note:   'std::pair<long long int, func>' 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 harbingers.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 harbingers.cpp:1:
/usr/include/c++/10/bits/predefined_ops.h:67:22: note:   'const std::pair<int, func>' 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 harbingers.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 harbingers.cpp:1:
/usr/include/c++/10/bits/predefined_ops.h:67:22: note:   'std::pair<long long int, func>' 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 harbingers.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 harbingers.cpp:1:
/usr/include/c++/10/bits/predefined_ops.h:67:22: note:   'const std::pair<int, func>' 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 harbingers.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 harbingers.cpp:1:
/usr/include/c++/10/bits/predefined_ops.h:67:22: note:   'std::pair<long long int, func>' 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 harbingers.cpp:1:
/usr/include/c++/10/bits/stl_pair.h:489:5: note: candidate: 'template<class _T1, class _T2> constexpr bool std::operator<(const s