#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define N 6000005
#define pb push_back
#define ff first
#define ss second
#define all(x) x.begin(),x.end()
#define sz(s) (int)s.size()
#define pii pair<int,int>
ll T, n, t, k, sum, b[N], c[N];
pair <int,int> a[N];
vector <int> v;
void find(int x,int cnt) {
if(cnt > sz(v) / 2) return;
if(cnt == sz(v)/2) {
ll p = 0;
for(int i = 1; i <= sz(v); i++){
if(c[i]) p += a[v[i - 1]].ff;
}
if(p == sum / 2) {
for(auto i : v) {
cout << a[i].ss<<" ";
}
exit(0);
}
return;
}
if(x == sz(v) + 1) return;
c[x] = 1;
find(x+1,cnt+1);
c[x] = 0;
find(x+1,cnt);
}
void solve(int x,int cnt) {
if(cnt > n) return;
if(cnt == n) {
sum = 0;
v.clear();
for(int i = 1; i <= n + k; i++) {
if(b[i]) {
v.pb(i);
sum += a[i].ff;
}
}
find(1,0);
for(int i = 1; i <= n + k; i++) {
c[i] = 0;
}
return;
}
if(x == n + k + 1) return;
b[x] = 1;
solve(x+1,cnt + 1);
b[x] = 0;
solve(x+1,cnt);
}
int main () {
ios::sync_with_stdio(0);cin.tie(0);
cin >> n >> k;
for(int i = 1; i <= n + k; i++) {
cin >> a[i].ff;
a[i].ss = i;
}
solve(1,0);
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |