Submission #1232133

#TimeUsernameProblemLanguageResultExecution timeMemory
1232133durdonaTable Tennis (info1cup20_tabletennis)C++20
0 / 100
3094 ms832 KiB
#include <iostream>
#include <vector>
#include <algorithm>
#include <random>

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

    std::random_device rd;
    std::mt19937 gen(rd());

    while (true) {
        std::uniform_int_distribution<> dis1(0, std::min(n + k - 1, k + 15));
        std::uniform_int_distribution<> dis2(0, n + k - 1);
        
        int i = dis1(gen);
        int j = dis2(gen);
        if (i + j >= n + k) continue;

        int s = arr[i] + arr[i + j];
        int l = 0, r = n + k - 1;
        int 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) {
            int oks = s;
            std::vector<int> ja;
            l = 0; r = n + k - 1;

            while (l < r && ja.size() < n) {
                if (arr[l] + arr[r] < oks) {
                    l++;
                } else if (arr[l] + arr[r] > oks) {
                    r--;
                } else {
                    ja.push_back(arr[l]);
                    ja.push_back(arr[r]);
                    l++;
                    r--;
                }
            }

            std::sort(ja.begin(), ja.end());
            for (const auto& val : ja) {
                std::cout << val << ' ';
            }
            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...