Submission #1139695

#TimeUsernameProblemLanguageResultExecution timeMemory
1139695kirakosyanTable Tennis (info1cup20_tabletennis)C++17
0 / 100
10 ms840 KiB
#include<iostream>
#include<vector>
#include<algorithm>
#include<cmath>
#include<queue>
#include<map>
#include<set>
using namespace std;
using ll = long long;
ll mod = 998244353;
void solve()
{
    int n, k; cin >> n >> k;
    vector<int>v(n + k);
    for (int i = 0; i < n + k; i++) {
        cin >> v[i];
    }
    sort(v.begin(), v.end());
    if (k == 1) {
        if (n + k == 3) {
            cout << v[0] << " " << v[1] << endl;
            return;
        }
        vector<int>pref(n + k);
        set<int>st;
        vector<int>suf(n + k);
        set<int>st1;
        for (int i = 1; i < n + k; i++) {
            st.insert(v[i] - v[i - 1]);
            pref[i] = st.size();
        }

        for (int i = n + k - 2; i >= 0; i--) {
            st1.insert(v[i + 1] - v[i]);
            suf[i] = st1.size();
        }
        for (int i = 0; i < n + k; i++) {
            //cout << i << " " << n + k << endl;
            if (i == 0) {
                if (suf[i + 1] == 1) {
                    for (int j = i + 1; j < n + k; j++) {
                        cout << v[j] << " ";
                    }
                    cout << endl;
                    return;
                }
            }
            else if (i == n + k - 1) {
                //cout << "HOP" << endl;
                if (pref[i - 1] == 1) {
                    for (int j = 0; j < i; j++) {
                        cout << v[j] << " ";
                    }
                    cout << endl;
                    return;
                }
            }
            else {
                if (pref[i - 1] <= 1 && suf[i + 1] <= 1) {
                    if (i == 1) {
                        if (v[i + 1] - v[i - 1] == v[i + 2] - v[i + 1]) {
                            for (int j = 0; j < n + k; j++) {
                                if (j != i) {
                                    cout << v[j] << " ";
                                }
                            }
                            cout << endl;
                        }
                        return;


                    }
                    else if (i == n + k - 2) {
                        if (v[i + 1] - v[i - 1] == v[i - 1] - v[i - 2]) {

                            for (int j = 0; j < n + k; j++) {
                                if (j != i) {
                                    cout << v[j] << " ";
                                }
                            }
                            cout << endl;
                        }
                        return;
                    }
                }

            }
        }
    }
}

signed main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    //signed _; cin >> _; while (_--)
    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...