Submission #791280

#TimeUsernameProblemLanguageResultExecution timeMemory
791280HD1Table Tennis (info1cup20_tabletennis)C++14
100 / 100
323 ms49720 KiB
//we are all lost trying to be someone. #include <bits/stdc++.h> #define fastio ios_base::sync_with_stdio(0); cin.tie(0); #define sz(x) ll(x.size()) #define reve(x) reverse(x.begin(),x.end()) #define ff first #define ss second using namespace std; typedef long long ll; typedef long double ld; typedef pair<ll,ll> ii; const ll MAX=3*(1e6+100); const ll mod=1e9+7; const ll inf=1e18+7; ll A[MAX], s[MAX]; vector<ll >c; bool nice=false; ll n, k; map<ll,ll>M; void solve(ll sum){ ll j=n+k-1; for(ll i = 0; i < n+k and A[i] < sum/2; i++){ while(j-1 >= 0 and A[j-1] >= sum-A[i]){ j--; } if( j > i and A[j] == sum-A[i]){ c.push_back(A[j]); c.push_back(A[i]); if(sz(c) >= n){ nice=true; return; } } } return; } int main(){ cin>>n>>k; for(ll i = 0; i < n + k; i++){ cin>>A[i]; } sort(A, A+n+k); if(n+k<=4*k){ for(ll i = 0; i < n+k; i++){ for(ll j = 0; j < n+k; j++){ if(i!=j){ ll sum=A[i]+A[j]; solve(sum); if(nice)break; c.clear(); } } if(nice)break; } sort(c.begin(),c.end()); for(ll i = 0; i < sz(c); i++){ cout<<c[i]<<" "; } cout<<'\n'; return 0; } ll cont = 0; ll aux = k + 1; if(n+k>=4*k) aux = 2*k; for(ll i = 0; i < aux; i++){ for(ll j = n+k-1; j > n+k-1-aux ; j--){ s[cont] = A[i] + A[j]; M[s[cont]]++; cont++; } } if(n+k >= 4*k){ cont=0; for(auto it: M){ if(it.ss>=k){ s[cont]=it.ff; cont++; } } } for(ll i=0; i<cont; i++){ solve(s[i]); if(nice)break; c.clear(); } sort(c.begin(),c.end()); for(ll i = 0; i < sz(c); i++){ cout<<c[i]<<" "; } cout<<'\n'; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...