Submission #933364

#TimeUsernameProblemLanguageResultExecution timeMemory
933364sleepntsheepA Plus B (IOI23_aplusb)C++17
100 / 100
82 ms10332 KiB
#include "aplusb.h" #include <set> #include <tuple> #include <map> #include <utility> #include <queue> std::vector<int> smallest_sums(int n, std::vector<int> a, std::vector<int> b) { std::vector<int> c(n); std::priority_queue<std::tuple<int, int, int>> q; q.emplace(-a[0] + -b[0], 0, 0); std::set<std::tuple<int, int>> ss; for (int k=0;k<n;) { auto [aa,i,j]=q.top();q.pop(); if (ss.count({i, j})) continue; ss.insert({i, j}); c[k]=-aa; if(i+1<n) q.emplace(-a[i+1]+-b[j],i+1,j); if(j+1<n) q.emplace(-a[i]+-b[j+1],i,j+1); ++k; } return c; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...