제출 #1145380

#제출 시각아이디문제언어결과실행 시간메모리
1145380Robert_juniorTable Tennis (info1cup20_tabletennis)C++20
100 / 100
48 ms3264 KiB
#include <bits/stdc++.h>
using namespace std;
#define all(x) x.begin(), x.end()
#define pb push_back
#define F first
#define S second
const int N = 2e5 + 7;
int a[N];
void solve(){
    int n, k;
    cin>>n>>k;
    for(int i = 1; i <= n + k; i++){
        cin>>a[i];
    }
    sort(a + 1, a + n + k + 1);
    for(int i = 1; i <= k + 1; i++){
        for(int j = n + k; j >= n - 1; j--){
            int sum = a[i] + a[j];
            int x = i, y = j, cnt = (i - 1) + (n + k - j);
            while(x < y && cnt <= k){
                if(a[x] + a[y] < sum){
                    x++;
                    cnt++;
                }
                else if(a[x] + a[y] > sum){
                    y--;
                    cnt++;
                }
                else{
                    x++;
                    y--;
                }
            }
            if(cnt > k) continue;
            vector<int>v;
            x = i, y = j;
            while(x < y && v.size() < n){
                if(a[x] + a[y] < sum){
                    x++;
                    cnt++;
                }
                else if(a[x] + a[y] > sum){
                    y--;
                    cnt++;
                }
                else{
                    v.pb(x);
                    v.pb(y);
                    x++;
                    y--;
                }
            }
            sort(all(v));
            for(auto it : v){
                cout<<a[it]<<' ';
            }
            return;
        }
    }
}
signed main(){
    ios_base :: sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
    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...