Submission #1249388

#TimeUsernameProblemLanguageResultExecution timeMemory
1249388oscar1fSouvenirs (IOI25_souvenirs)C++20
Compilation error
0 ms0 KiB
#include "souvenirs.h" #include <utility> #include<bits/stdc++.h> using namespace std; #define ll long long struct info { vector<ll> liste; ll total; }; const ll TAILLE_MAX=100+5; /*ll vraiNbAppel[TAILLE_MAX]; ll vraiVal[TAILLE_MAX]; ll vraiN;*/ ll nbAppel[TAILLE_MAX]; ll val[TAILLE_MAX]; ll nbVal,premIncon,nbReq; vector<info> enCours; /*pair<vector<ll>,ll> transaction(ll M) { vector<ll> vraiAchat; for (ll i=0;i<vraiN;i++) { if (M>=vraiVal[i]) { M-=vraiVal[i]; vraiAchat.push_back(i); vraiNbAppel[i]++; } } if (vraiAchat.empty()) { cout<<-1<<endl; } return {vraiAchat,M}; }*/ info filtre(info anci) { info nouv={{},anci.total}; for (ll i:anci.liste) { if (val[i]==0) { nouv.liste.push_back(i); } else { nouv.total-=val[i]; } } return nouv; } info poseQuest(ll quest) { //nbReq++; auto ans=transaction(quest); //cout<<'?'<<quest<<" !"<<quest-ans.second<<" : "; for (ll i:ans.first) { nbAppel[i]++; //cout<<i<<" "; } //cout<<endl; return filtre({ans.first,quest-ans.second}); } void afficher(info nouv) { return; cout<<nouv.total<<" : "; for (ll i:nouv.liste) { cout<<i<<" "; } cout<<endl; } void buy_souvenirs(int N,ll P0) { nbVal=N; val[0]=P0; while (premIncon<nbVal) { if (val[premIncon]!=0) { premIncon++; } else if (enCours.empty()) { info nouv=poseQuest(val[premIncon-1]-1); afficher(nouv); enCours.push_back(nouv); } else { info cour=filtre(enCours.back()); //cout<<"###";afficher(cour); if (cour.liste.empty()) { enCours.pop_back(); } else if ((ll)cour.liste.size()==1) { val[cour.liste[0]]=cour.total; //cout<<"!!!"<<cour.liste[0]<<" "<<cour.total<<endl; enCours.pop_back(); } else { ll quest=cour.total/cour.liste.size(); //cout<<quest<<" "; for (ll i=0;i<cour.liste.back();i++) { if (val[i]!=0 && val[i]<=quest) { quest=val[i]-1; } } //cout<<quest<<endl; info nouv=poseQuest(quest); afficher(nouv); enCours.push_back(nouv); } } } /*for (ll i=0;i<nbVal;i++) { cout<<val[i]<<" "; } cout<<endl;*/ for (ll i=0;i<nbVal;i++) { while (nbAppel[i]<i) { transaction(val[i]); nbAppel[i]++; } } } /*void grader() { cin>>vraiN; for (int i=0;i<vraiN;i++) { cin>>vraiVal[i]; } buy_souvenirs(vraiN,vraiVal[0]); for (int i=0;i<vraiN;i++) { cout<<vraiNbAppel[i]<<" "; } cout<<endl; } signed main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); grader(); }*/

Compilation message (stderr)

souvenirs.cpp: In function 'info poseQuest(long long int)':
souvenirs.cpp:60:18: error: could not convert '{ans.std::pair<std::vector<int>, long long int>::first, (quest - ans.std::pair<std::vector<int>, long long int>::second)}' from '<brace-enclosed initializer list>' to 'info'
   60 |     return filtre({ans.first,quest-ans.second});
      |            ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                  |
      |                  <brace-enclosed initializer list>