Submission #991255

#TimeUsernameProblemLanguageResultExecution timeMemory
991255VMaksimoski008A Plus B (IOI23_aplusb)C++17
10 / 100
1 ms504 KiB
#include "aplusb.h"
#include <bits/stdc++.h>
using namespace std;
using Node = array<int, 3>;

vector<int> smallest_sums(int N, std::vector<int> A, std::vector<int> B) {
	vector<int> ans;
	priority_queue<Node, vector<Node>, greater<Node> > pq;
	pq.push({ A[0] + B[0], 0, 0 });

	for(int it=0; it<N; it++) {
		auto [val, i, j] = pq.top(); pq.pop();
		ans.push_back(val);
		if(i + 1 < N) pq.push({ A[i+1] + B[j], i+1, j });
		if(j + 1 < N) pq.push({ A[i] + B[j+1], i, j+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...