Submission #841051

#TimeUsernameProblemLanguageResultExecution timeMemory
841051Faisal_SaqibA Plus B (IOI23_aplusb)C++17
100 / 100
51 ms9488 KiB
#include <iostream> #include <vector> #include <set> #include <algorithm> #include "aplusb.h" using namespace std; vector<int> smallest_sums(int n,vector<int> a ,vector<int> b) { vector<int> ans(n); int pak=0; int can[a.size()]; int m=b.size(); for(int i=0;i<n;i++) { can[i]=0; } set<pair<int,pair<int,int>>> pq; pq.insert({a[0]+b[0],{0,0}}); while(pak<(n) and pq.size()>0) { auto p=*begin(pq); pq.erase(begin(pq)); ans[pak]=p.first; pak++; if(p.second.first< (n-1)){ pq.insert({a[p.second.first+1]+b[can[p.second.first+1]],{p.second.first+1,can[p.second.first+1]}}); } if(p.second.second< (m-1)) { pq.insert({a[p.second.first]+b[p.second.second+1],{p.second.first,p.second.second+1}}); can[p.second.first]+=1; } } // for(auto i:ans) // cout<<i<<' '; // cout<<endl; return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...