Submission #1307798

#TimeUsernameProblemLanguageResultExecution timeMemory
1307798exoworldgdSouvenirs (IOI25_souvenirs)C++20
Compilation error
0 ms0 KiB
#pragma GCC optimize("Ofast,unroll-loops,inline,fast-math,omit-frame-pointer") #pragma GCC target("avx2,bmi,bmi2,popcnt,lzcnt,tune=native,fma") #include <bits/stdc++.h> #include "souvenirs.h" #define exoworldgd cin.tie(0)->sync_with_stdio(0),cout.tie(0) using namespace std; using ll=long long; const int N=1e5+5; int n,cnt[N]; ll cost[N]; void rec(int idx,ll budget){ if(idx>=n||cost[idx]^-1)return; auto res=transaction(budget-1); if(res.first.empty())return; int cur=res.first.front(); for(auto e:res.first)cnt[e]++; if(res.first.size()>1){ ll rem=budget-1-res.second,per=rem/res.first.size()+1; for(int i=res.first.size()-1;i>0;i--)~cost[res.first[i]]||rec(res.first[i],per),res.second+=cost[res.first[i]]; } cost[cur]=budget-1-res.second,rec(cur+1,cost[cur]); } void buy_souvenirs(int N,ll P){ n=N; for(int i=0;i<n;i++)cost[i]=-1,cnt[i]=0; cost[0]=P,rec(1,P); for(int i=0;i<n;i++)while(cnt[i]<i)cnt[i]++,transaction(cost[i]); }

Compilation message (stderr)

souvenirs.cpp: In function 'void rec(int, ll)':
souvenirs.cpp:19:70: error: could not convert 'rec(res.std::pair<std::vector<int>, long long int>::first.std::vector<int>::operator[](((std::vector<int>::size_type)i)), per)' from 'void' to 'bool'
   19 |         for(int i=res.first.size()-1;i>0;i--)~cost[res.first[i]]||rec(res.first[i],per),res.second+=cost[res.first[i]];
      |                                                                   ~~~^~~~~~~~~~~~~~~~~~