Submission #939828

#TimeUsernameProblemLanguageResultExecution timeMemory
939828AdamGSA Plus B (IOI23_aplusb)C++17
100 / 100
40 ms6164 KiB
#include "aplusb.h" #include<bits/stdc++.h> using namespace std; typedef long long ll; #define rep(a, b) for(int a = 0; a < (b); ++a) #define st first #define nd second #define pb push_back #define all(a) a.begin(), a.end() const int LIM=1e5+7; ll A[LIM], B[LIM], n; bool check(ll x) { ll ile=0; rep(i, n) { rep(j, n) { if(A[i]+B[j]>x) break; ++ile; if(ile>n) return false; } } return true; } vector<int>smallest_sums(int _N, vector<int>_A, vector<int>_B) { n=_N; rep(i, n) A[i]=_A[i]; rep(i, n) B[i]=_B[i]; ll po=0, ko=A[n-1]+B[n-1]; while(po<ko) { ll sr=(po+ko+1)/2; if(check(sr)) po=sr; else ko=sr-1; } vector<int>ans; rep(i, n) { rep(j, n) { if(A[i]+B[j]>po) break; ans.pb(A[i]+B[j]); } } while(ans.size()<n) ans.pb(po+1); sort(all(ans)); return ans; }

Compilation message (stderr)

aplusb.cpp: In function 'std::vector<int> smallest_sums(int, std::vector<int>, std::vector<int>)':
aplusb.cpp:39:19: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'll' {aka 'long long int'} [-Wsign-compare]
   39 |   while(ans.size()<n) ans.pb(po+1);
      |         ~~~~~~~~~~^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...