제출 #1232136

#제출 시각아이디문제언어결과실행 시간메모리
1232136durdonaTable Tennis (info1cup20_tabletennis)C++20
87 / 100
3094 ms3060 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
    int n, k;
    cin >> n >> k;
    vector<int> arr(n + k);
    for (int i = 0; i < n + k; i++) {
        cin >> arr[i];
    }

    mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());

    while (true) {
        int i = uniform_int_distribution<int>(0, min(n + k - 1, k + 15))(rng);
        int j = uniform_int_distribution<int>(max(0, n - i - 10), n + k - 1)(rng);
        if (i + j >= n + k) continue;

        int s = arr[i] + arr[i + j];
        int l = 0, r = n + k - 1, f = 0;

        while (l < r && f < n) {
            if (arr[l] + arr[r] < s) {
                l++;
            } else if (arr[l] + arr[r] > s) {
                r--;
            } else {
                f += 2;
                l++;
                r--;
            }
        }

        if (f == n) {
            vector<int> ja;
            l = 0, r = n + k - 1;
            while (l < r && ja.size() < n) {
                if (arr[l] + arr[r] < s) {
                    l++;
                } else if (arr[l] + arr[r] > s) {
                    r--;
                } else {
                    ja.push_back(arr[l]);
                    ja.push_back(arr[r]);
                    l++;
                    r--;
                }
            }
            sort(ja.begin(), ja.end());
            for (int x : ja) cout << x << ' ';
            break;
        }
    }

    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...