제출 #1171776

#제출 시각아이디문제언어결과실행 시간메모리
1171776bbartekA Plus B (IOI23_aplusb)C++20
30 / 100
0 ms328 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...