Submission #877689

#TimeUsernameProblemLanguageResultExecution timeMemory
877689eldorbek_008A Plus B (IOI23_aplusb)C++17
100 / 100
42 ms5028 KiB
#include "aplusb.h" #include <bits/stdc++.h> using namespace std; // #define int long long #define all(x) (x).begin(), (x).end() inline bool check(vector<int> A, vector<int> B, int x) { int id = (int)A.size(); for (int i = 0; i < (int)A.size(); i++) { for (int j = 0; j < (int)B.size(); j++) { if (A[i] + B[j] <= x) { --id; } else break; if (!id) return true; } } return false; } vector<int> smallest_sums(int N, vector<int> A, vector<int> B) { int l = -1, r = (int)2e9 + 1; while (r - l > 1) { int mid = (l + r) / 2; if (check(A, B, mid)) r = mid; else l = mid; } vector<int> C; for (int i = 0; i < (int)A.size(); i++) { for (int j = 0; j < (int)B.size(); j++) { if (A[i] + B[j] <= r) { C.push_back(A[i] + B[j]); } else break; } // if ((int)C.size() == (int)A.size()) break; } sort(all(C)); C.resize((int)A.size()); return C; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...