#include <bits/stdc++.h>
#include "aplusb.h"
using namespace std;
typedef long long ll;
#define st first
#define nd second
#define pb push_back
vector<int> smallest_sums(int n, vector<int> A, vector<int> B) {
int pocz = A[0] + B[0],kon = A[n-1] + B[n-1],sro;
ll licznik,punkt;
while(pocz < kon){
sro = (pocz+kon)/2;
licznik = 0,punkt = n-1;
for(int i=0;i<n;i++){
if(A[i] + B[0] > sro)
break;
while(A[i] + B[punkt] > sro)
punkt--;
licznik += punkt+1;
}
if(licznik >= n){
kon = sro;
}
else{
pocz = sro+1;
}
}
vector<int> wyn;
licznik = 0,punkt = n-1;
for(int i=0;i<n;i++){
if(A[i] + B[0] > pocz)
break;
for(int j=0;j<n;j++){
if(A[i]+B[j] > pocz)
break;
wyn.pb(A[i] + B[j]);
}
}
sort(wyn.begin(),wyn.end());
for(int i=1;i<=wyn.size()-n;i++){
wyn.pop_back();
}
return wyn;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |