Submission #1317679

#TimeUsernameProblemLanguageResultExecution timeMemory
1317679tuncay_pashaTable Tennis (info1cup20_tabletennis)C++20
24 / 100
3092 ms12864 KiB
#include <bits/stdc++.h>
using namespace std;

void solve() {
    int n, k;
    if (!(cin >> n >> k)) return;
    int m = n + k;
    vector<long long> a(m);
    for (int i = 0; i < m; i++) cin >> a[i];

    // Diziyi sıralamak Two Pointers için şart
    sort(a.begin(), a.end());

    // Olası toplam adaylarını (S) belirliyoruz.
    // Doğru S, ilk 2K eleman içinden en az iki elemanın toplamı olmalıdır.
    set<long long> candidates;
    int limit = min(m, 2 * k + 2); 
    for (int i = 0; i < limit; i++) {
        for (int j = i + 1; j < limit; j++) {
            candidates.insert(a[i] + a[j]);
        }
    }

    // Her aday toplamı Two Pointers ile test et
    for (long long S : candidates) {
        vector<long long> result;
        int L = 0, R = m - 1;
        
        while (L < R && result.size() < n) {
            if (a[L] + a[R] == S) {
                result.push_back(a[L]);
                result.push_back(a[R]);
                L++; R--;
            } else if (a[L] + a[R] < S) {
                L++;
            } else {
                R--;
            }
        }

        // Eğer n eleman bulduysak (n çift olduğu için tam eşleşme gerekir)
        if (result.size() == n) {
            sort(result.begin(), result.end());
            for (int i = 0; i < n; i++) {
                cout << result[i] << (i == n - 1 ? "" : " ");
            }
            cout << endl;
            return;
        }
    }
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    solve();
    return 0;
}
#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...