Submission #1232130

#TimeUsernameProblemLanguageResultExecution timeMemory
1232130khomeTable Tennis (info1cup20_tabletennis)C++20
20 / 100
3095 ms8680 KiB
#include <bits/stdc++.h>

using namespace std;
#define int unsigned long long

const int inf = 1e9;

void solve(){
    int n, k; cin >> n >> k;
    vector<int> a(n + k);
    set<int> st;
    for (int i = 0; i < n + k; i++ ) {cin >> a[i]; st.insert(a[i]);}

    // sort(a.begin(), a.end());
    auto check = [&](int x, int L, int R) -> void {
        vector<int> v;
        int l = L, r = R;
        for (int i = L; i <= R; i++) {
            if (v.size() >= n) break;
            int rr = r;
            while (rr >= 0 && a[i] + a[rr] > x || i == rr || a[i] >= a[rr]) {
                rr--;
            }
            if (a[i] + a[rr] == x) {
                v.push_back(a[i]);
                v.push_back(a[rr]);
                r = rr;
            }
        }
        if (v.size() == n){
            sort(v.begin(), v.end());
            for (int i : v) cout << i << ' '; cout << endl;
            exit(0);
        }
        return;
    };

    for (int i = 0; i < k + 1; i++ ) {
        for (int j = i + n - 1; j < n + k; j++) {
            check(a[i] + a[j], i, j);
        }
    }

}

signed main(){
    cin.tie(0) -> sync_with_stdio(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...