Submission #1319486

#TimeUsernameProblemLanguageResultExecution timeMemory
1319486husuuuTable Tennis (info1cup20_tabletennis)C++20
87 / 100
3090 ms10868 KiB
//g++ -o sol sol.cpp //cd C:\Users\Asus-1\OneDrive\Desktop #include <bits/stdc++.h> using namespace std; #define int long long #define ld long double const int INF=1e9+5; #define S(a) a.begin(),a.end() #define pb push_back #define READ(l , r , a) for(int i = l;i <= r;i++) cin >> a[i] #define printV(l , r , a) for(int i = l;i <= r;i++) cout << a[i] << ' '; #define pii pair < int , int > #define FOR(i , l , r) for(int i = l;i <= r;i++) int n,k; int a[150500]; bool ok(int vl){ int l=0,r=n+k-1,cnt=0; while(l<r){ if(a[l]+a[r]==vl){ ++cnt; ++l; --r; } else if(a[l]+a[r]>vl){ --r; } else{ ++l; } } return (cnt>=n/2); } vector<int>get_res(int vl){ vector<int>res; int l=0,r=n+k-1; while(l<r and res.size()<n){ if(a[l]+a[r]==vl){ res.push_back(a[l]); res.push_back(a[r]); ++l; --r; continue; } else if(a[l]+a[r]>vl){ --r; } else{ ++l; } } sort(S(res)); return res; } void solve(){ cin>>n>>k; for(int i=0;i<n+k;i++) cin>>a[i]; sort(a,a+n+k); set<int>all; for(int i=0;i<=k;i++) for(int j=n-1;j<n+k;j++) all.insert(a[i]+a[j]); vector<int>pos; for(auto x : all) pos.pb(x); for(int vl : pos){ if(ok(vl)){ vector<int>res=get_res(vl); for(int i=0;i<n;i++) cout<<res[i]<<' '; cout<<endl; return; } } } signed main(){ ios_base::sync_with_stdio(); cin.tie(0); cout.tie(0); int T=1;//cin>>T; while(T--) solve(); }
#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...