제출 #717883

#제출 시각아이디문제언어결과실행 시간메모리
717883vjudge1Table Tennis (info1cup20_tabletennis)C++17
0 / 100
401 ms43680 KiB
#include "bits/stdc++.h"
#define ll long long
using namespace std;
const ll mod = 1000000007;

int b[150001], cnt[150001];

signed main () {
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    // freopen("cowland.in","r",stdin);
    // freopen("cowland.out","w",stdout);

    int n, k;
    cin >> n >> k;
    vector<pair<int, int>> v;
    set<int> ss;
    for(int i = 0; i < n + k; i++) {
        int x;
        cin >> x;
        ss.insert(x);
        v.push_back({x, i + 1});
    }
    map<int, int> c;
    int o = 1;
    for(int i : ss)
        c[i] = o++;
    for(int i = 0; i < n + k; i++) {
        cnt[c[v[i].first]]++;
    }
    sort(v.begin(), v.end());
    set<int> s;
    for(int i = 0; i <= k; i++) {
        int j = n + k - 1;
        while(i < j && i + ((n + k) - j - 1) <= k)
            s.insert(v[i].first + v[j--].first);
    }
    map<int, int> mp;
    for(int x : s) {
        int y = 0;
        for(int i = 0; i < n + k; i++) {
            if(cnt[c[v[i].first]] - b[c[v[i].first]] && x - v[i].first >= 0 && cnt[c[x - v[i].first]] - b[c[x - v[i].first]]) {
                b[c[v[i].first]]++, b[c[x - v[i].first]]++;
                y += 2;
                if(y == n)
                    break;
            }
        }
        if(y >= n) {
            set<int> ans;
            for(int i = 0; i < n + k; i++) {
                if(b[c[v[i].first]]) {
                    b[c[v[i].first]]--;
                    ans.insert(v[i].second);
                }
            }
            for(int i : ans)
                cout << i << " ";
            return 0;
        }
        for(int i = 0; i < n + k; i++)
            mp[v[i].first] = 0, b[c[v[i].first]] = 0;
    }

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