Submission #717200

#TimeUsernameProblemLanguageResultExecution timeMemory
717200vjudge1Table Tennis (info1cup20_tabletennis)C++17
53 / 100
3045 ms4608 KiB
#include <bits/stdc++.h>
using namespace std;

int n, k;
vector<int> a;

bool check(int sum) {
    int l = 1, r = n + k;
    int good = 0;
    while (l < r) {
        if (a[l] + a[r] == sum) {
            good += 2;
            l++; r--;
            if (good >= n) return true;
        } else if (a[l] + a[r] < sum) {
            l++;
        } else {
            r--;
        }
    }
    return false;
}

vector<int> construct(int sum) {
    int l = 1, r = n + k;
    vector<int> ans;
    while (l < r) {
        if (a[l] + a[r] == sum) {
            ans.push_back(a[l]);
            ans.push_back(a[r]);
            l++; r--;
            if (ans.size() == n) break;
        } else if (a[l] + a[r] < sum) {
            l++;
        } else {
            r--;
        }
    }
    sort(ans.begin(), ans.end());
    return ans;
}

int main() {
    ios::sync_with_stdio(false);
    cin >> n >> k;
    a.resize(n + k + 1);
    for (int i = 1; i <= n + k; i++) cin >> a[i];
    int sum = -1;
    for (int i = 1; i <= k && sum == -1; i++) {
        for (int j = n + k; j >= n; j--) {
            if (check(a[i] + a[j])) {
                sum = a[i] + a[j];
                break;
            }
        }
    }
    assert(sum != -1);
    vector<int> ans = construct(sum);
    for (int x : ans) cout << x << " ";
    cout << endl;
    return 0;
}

Compilation message (stderr)

tabletennis.cpp: In function 'std::vector<int> construct(int)':
tabletennis.cpp:32:28: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   32 |             if (ans.size() == n) break;
      |                 ~~~~~~~~~~~^~~~
#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...