Submission #839822

#TimeUsernameProblemLanguageResultExecution timeMemory
839822allin27xA Plus B (IOI23_aplusb)C++17
60 / 100
17 ms3340 KiB
#include <bits/stdc++.h> using namespace std; #define vi vector<int> bool check(int s, vi& a, vi& b){ int n = a.size(); int prs = 0; int j = n-1; for (int i=0; i<n; i++){ for (; j>=0 && b[j]+a[i]>s; j--) ; prs += j+1; } return prs>=n; } vi smallest_sums(int n, vi a, vi b){ unsigned int l = 0, r = 2e9+7; while (l<r){ int m = (l+r)/2; if (check(m, a, b)) r = m; else l = m+1; } vi ans(n,0); int ind = 0; for (int i=0; i<n; i++){ for (int j=0; j<n && a[i]+b[j]<l; j++) ans[ind++] = a[i] + b[j]; } while (ind < n) ans[ind++] = l; sort(ans.begin(), ans.end()); return ans; }

Compilation message (stderr)

aplusb.cpp: In function 'std::vector<int> smallest_sums(int, std::vector<int>, std::vector<int>)':
aplusb.cpp:26:33: warning: comparison of integer expressions of different signedness: '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type' {aka 'int'} and 'unsigned int' [-Wsign-compare]
   26 |   for (int j=0; j<n && a[i]+b[j]<l; j++) ans[ind++] = a[i] + b[j];
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...