Submission #1028352

#TimeUsernameProblemLanguageResultExecution timeMemory
1028352sqrteipiA Plus B (IOI23_aplusb)C++17
100 / 100
34 ms5840 KiB
#include <bits/stdc++.h>
using namespace std;
#define pii pair<int, int>

vector<int> smallest_sums(int n, vector<int> a, vector<int> b) {
  sort(b.begin(), b.end());
  int ptr[n], p=0;
  vector<int> ans;
  priority_queue<pii, vector<pii>, greater<pii>> pq;
  for (int i=0; i<n; i++) pq.push({a[i] + b[0], i});
  for (int i=0; i<n; i++) ptr[i] = 1;
  while (!pq.empty()) {
    if (ans.size() == n) break;
    ans.push_back(pq.top().first);
    int ind = pq.top().second; 
    pq.pop();
    if (ptr[ind] == n) continue;
    pq.push({a[ind] + b[ptr[ind]], ind});
    ptr[ind]++;
  }
  return ans;
}

Compilation message (stderr)

aplusb.cpp: In function 'std::vector<int> smallest_sums(int, std::vector<int>, std::vector<int>)':
aplusb.cpp:13:20: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   13 |     if (ans.size() == n) break;
      |         ~~~~~~~~~~~^~~~
aplusb.cpp:7:15: warning: unused variable 'p' [-Wunused-variable]
    7 |   int ptr[n], p=0;
      |               ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...