Submission #763678

#TimeUsernameProblemLanguageResultExecution timeMemory
763678Ahmed57Holiday (IOI14_holiday)C++17
Compilation error
0 ms0 KiB
#include"holiday.h" #include <bits/stdc++.h> using namespace std; long long seg[9001] , cnt[9001]; void update(int p,int l,int r,int idx,long long val){ if(l==r){ seg[p]+=val; cnt[p]++; return ; } int md = (l+r)/2; if(idx<=md)update(p*2,l,md,idx,val); else update(p*2+1,md+1,r,idx,val); cnt[p] = cnt[p*2]+cnt[p*2+1]; seg[p] = seg[p*2]+seg[p*2+1]; } long long query(int p,int l,int r,int num){ if(l==r){ if(cnt[p]==0){ return 0; } return (seg[p]/cnt[p])*min(num,cnt[p]); } int md = (l+r)/2; if(num>=cnt[p*2+1]){ return seg[p*2+1]+query(p*2,l,md,num-cnt[p*2+1]); }else{ return query(p*2+1,md+1,r,num); } } long long int findMaxAttraction(int n, int start, int d, int attraction[]){ if(start==0){ priority_queue<long long> q; long long sum = 0 , ma = 0; for(int i = 0;i<n;i++){ q.push(-attraction[i]); sum+=attraction[i]; while(!q.empty()&&q.size()>(d-i)){ sum+=q.top(); q.pop(); } ma = max(ma,sum); } return ma; } map<int,int> comp,sav; for(int i = 0;i<n;i++){ comp[attraction[i]]++; } int z = 0; for(auto i:comp){ sav[i.first] = ++z; } long long ma = 0; for(int i = 0;i<=start;i++){ memset(seg,0,sizeof seg); memset(cnt,0,sizeof cnt); for(int j = i;j<start;j++){ update(1,1,n,sav[attraction[j]],attraction[j]); } for(int j = start;j<n;j++){ update(1,1,n,sav[attraction[j]],attraction[j]); long long rem = d-(min(abs(start-i),abs(start-j))*2)-max(abs(start-i),abs(start-j)); if(rem<=0)continue; ma = max(ma,query(1,1,n,rem)); } } return ma; } /* int main(){ int S[] = {10,2,20,30,1}; cout<<findMaxAttraction(5,2,7,S); }*/

Compilation message (stderr)

holiday.cpp: In function 'long long int query(int, int, int, int)':
holiday.cpp:24:46: error: no matching function for call to 'min(int&, long long int&)'
   24 |         return (seg[p]/cnt[p])*min(num,cnt[p]);
      |                                              ^
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 holiday.cpp:3:
/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:
holiday.cpp:24:46: note:   deduced conflicting types for parameter 'const _Tp' ('int' and 'long long int')
   24 |         return (seg[p]/cnt[p])*min(num,cnt[p]);
      |                                              ^
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 holiday.cpp:3:
/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:
holiday.cpp:24:46: note:   deduced conflicting types for parameter 'const _Tp' ('int' and 'long long int')
   24 |         return (seg[p]/cnt[p])*min(num,cnt[p]);
      |                                              ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from holiday.cpp:3:
/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:
holiday.cpp:24:46: note:   mismatched types 'std::initializer_list<_Tp>' and 'int'
   24 |         return (seg[p]/cnt[p])*min(num,cnt[p]);
      |                                              ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from holiday.cpp:3:
/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:
holiday.cpp:24:46: note:   mismatched types 'std::initializer_list<_Tp>' and 'int'
   24 |         return (seg[p]/cnt[p])*min(num,cnt[p]);
      |                                              ^
holiday.cpp: In function 'long long int findMaxAttraction(int, int, int, int*)':
holiday.cpp:41:39: warning: comparison of integer expressions of different signedness: 'std::priority_queue<long long int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   41 |             while(!q.empty()&&q.size()>(d-i)){
      |                               ~~~~~~~~^~~~~~