제출 #1307846

#제출 시각아이디문제언어결과실행 시간메모리
1307846exoworldgd축제 (IOI25_festival)C++20
컴파일 에러
0 ms0 KiB
#include "festival.h" #include <bits/stdc++.h> #define exoworldgd cin.tie(0)->sync_with_stdio(0),cout.tie(0) using namespace std; using ll=long long; vector<int>cur,best; int bt; void rec(int pos,ll s,int lim,vector<int>&a,vector<pair<ll,int>>&b,vector<int>&p,vector<int>&t){ if(lim==1||pos==a.size()){ auto it=lower_bound(b.begin(),b.end(),make_pair(s+1,-1))-b.begin(); if(it+cur.size()>best.size()+bt)best=cur,bt=it; return; } if(s>=p[a[pos]]&&lim>=t[a[pos]])cur.push_back(a[pos]),rec(pos+1,min((s-p[a[pos]])*t[a[pos]],(ll)1e18,lim,a,b,p,t),cur.pop_back(); rec(pos+1,s,min(lim,t[a[pos]]-1),a,b,p,t); } vector<int>max_coupons(int A,vector<int>P,vector<int>T){ vector<int>a; vector<pair<ll,int>>b; int n=P.size(); for(int i=0;i<n;i++)T[i]>1?a.push_back(i):b.push_back({P[i],i}); sort(a.begin(),a.end(),[&](int i,int j){ if(T[i]==T[j])return P[i]<P[j]; return 1ll*P[i]*T[i]*(T[j]-1)<1ll*P[j]*T[j]*(T[i]-1); }); sort(b.begin(),b.end()); for(int i=1;i<b.size();i++)b[i].first+=b[i-1].first; vector<int>res; ll tok=A; for(auto i:a){ if((tok-P[i])*T[i]>=tok)tok=(tok-P[i])*T[i],tok=min(tok,(ll)1e15),res.push_back(i); else break; } a.erase(a.begin(),a.begin()+res.size()),rec(0,tok,4,a,b,P,T); for(auto i:best)res.push_back(i); for(int i=0;i<bt;i++)res.push_back(b[i].second); return res; }

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

festival.cpp: In function 'void rec(int, ll, int, std::vector<int>&, std::vector<std::pair<long long int, int> >&, std::vector<int>&, std::vector<int>&)':
festival.cpp:14:72: error: no matching function for call to 'min(ll, ll, int&, std::vector<int>&, std::vector<std::pair<long long int, int> >&, std::vector<int>&, std::vector<int>&)'
   14 |     if(s>=p[a[pos]]&&lim>=t[a[pos]])cur.push_back(a[pos]),rec(pos+1,min((s-p[a[pos]])*t[a[pos]],(ll)1e18,lim,a,b,p,t),cur.pop_back();
      |                                                                     ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/13/vector:62,
                 from festival.h:1,
                 from festival.cpp:1:
/usr/include/c++/13/bits/stl_algobase.h:233:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::min(const _Tp&, const _Tp&)'
  233 |     min(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/13/bits/stl_algobase.h:233:5: note:   template argument deduction/substitution failed:
festival.cpp:14:72: note:   candidate expects 2 arguments, 7 provided
   14 |     if(s>=p[a[pos]]&&lim>=t[a[pos]])cur.push_back(a[pos]),rec(pos+1,min((s-p[a[pos]])*t[a[pos]],(ll)1e18,lim,a,b,p,t),cur.pop_back();
      |                                                                     ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/13/bits/stl_algobase.h:281:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::min(const _Tp&, const _Tp&, _Compare)'
  281 |     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/13/bits/stl_algobase.h:281:5: note:   template argument deduction/substitution failed:
festival.cpp:14:72: note:   candidate expects 3 arguments, 7 provided
   14 |     if(s>=p[a[pos]]&&lim>=t[a[pos]])cur.push_back(a[pos]),rec(pos+1,min((s-p[a[pos]])*t[a[pos]],(ll)1e18,lim,a,b,p,t),cur.pop_back();
      |                                                                     ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/13/algorithm:61,
                 from /usr/include/x86_64-linux-gnu/c++/13/bits/stdc++.h:51,
                 from festival.cpp:2:
/usr/include/c++/13/bits/stl_algo.h:5775:5: note: candidate: 'template<class _Tp> constexpr _Tp std::min(initializer_list<_Tp>)'
 5775 |     min(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/13/bits/stl_algo.h:5775:5: note:   template argument deduction/substitution failed:
festival.cpp:14:72: note:   mismatched types 'std::initializer_list<_Tp>' and 'long long int'
   14 |     if(s>=p[a[pos]]&&lim>=t[a[pos]])cur.push_back(a[pos]),rec(pos+1,min((s-p[a[pos]])*t[a[pos]],(ll)1e18,lim,a,b,p,t),cur.pop_back();
      |                                                                     ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/13/bits/stl_algo.h:5785:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::min(initializer_list<_Tp>, _Compare)'
 5785 |     min(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/13/bits/stl_algo.h:5785:5: note:   template argument deduction/substitution failed:
festival.cpp:14:72: note:   mismatched types 'std::initializer_list<_Tp>' and 'long long int'
   14 |     if(s>=p[a[pos]]&&lim>=t[a[pos]])cur.push_back(a[pos]),rec(pos+1,min((s-p[a[pos]])*t[a[pos]],(ll)1e18,lim,a,b,p,t),cur.pop_back();
      |                                                                     ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
festival.cpp:14:133: error: expected ')' before ';' token
   14 |     if(s>=p[a[pos]]&&lim>=t[a[pos]])cur.push_back(a[pos]),rec(pos+1,min((s-p[a[pos]])*t[a[pos]],(ll)1e18,lim,a,b,p,t),cur.pop_back();
      |                                                              ~                                                                      ^
      |                                                                                                                                     )