Submission #1229530

#TimeUsernameProblemLanguageResultExecution timeMemory
1229530cig32A Plus B (IOI23_aplusb)C++20
10 / 100
0 ms328 KiB
#include "aplusb.h"
#include "bits/stdc++.h"
using namespace std;

std::vector<int> smallest_sums(int N, std::vector<int> A, std::vector<int> B) {
  priority_queue<pair<int, pair<int, int>>,
                 vector<pair<int, pair<int, int>>>,
                 greater<pair<int, pair<int, int>>>> pq;
  pq.push({A[0] + B[0], {0, 0}});
  vector<int> ans;
  while (ans.size() < N) {
    ans.push_back(pq.top().first);
    pq.pop();
    pair<int, int> t = pq.top().second;
    if (t.second == 0) {
      pq.push({A[t.first + 1] + B[0], {t.first + 1, 0}});
      pq.push({A[t.first] + B[1], {t.first, 1}});
    }
    else {
      pq.push({A[t.first] + B[t.second + 1], {t.first, t.second + 1}});
    }
  }
  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...