제출 #717316

#제출 시각아이디문제언어결과실행 시간메모리
717316vjudge1Table Tennis (info1cup20_tabletennis)C++17
0 / 100
3059 ms1048576 KiB
#include <bits/stdc++.h>
#define ll long long
using namespace std;

const int N = 40;
const ll INF = 1e12;

int n, k, a[N];

vector<int> ans;
int ign = 0, cnt1 = 0;
ll c1 = 0, c2 = 0;

void solve(int idx) {
    if (idx == n + k)
    {
        if (ign == k && c1 == c2)
        {
            for (int i : ans)
                cout << i << ' ';
            exit(0);
        }
        return;
    }
    if (ign < k) {
        ign++;
        solve(idx + 1);
        ign--;
    }
    ans.push_back(idx + 1);
    if (cnt1 < n / 2) {
        cnt1++;
        c1 += a[idx];
        solve(idx + 1);
        c1 -= a[idx];
        cnt1--;
    }
    if ((idx - cnt1 - ign) < n / 2) {
        c2 += a[idx];
        solve(idx + 1);
        c2 -= a[idx];
    }
    ans.pop_back();
}

int main()
{
    cin >> n >> k;
    for (int i = 0; i < n + k; cin >> a[i++]);
    solve(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...