#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define N 600005
#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>
//mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
ll T, n, a[N], t, k, sum;
set <int> s;
map <int,int> pos;
int main () {
ios::sync_with_stdio(0);cin.tie(0);
cin >> n >> k;
for(int i = 1; i <= n + k; i++) {
cin >> a[i];
if(i <= n) {
s.insert(i);
sum += a[i];
}
}
if(sum % 2 == 0) {
pos[0] = 1;
for(auto j : s) {
for(int i = sum/2; i >= 0; i--) {
if(pos[i]) pos[i + a[j]] = 1;
}
}
if(pos[sum/2]) {
for(auto j:s) {
cout << j << " ";
}
return 0;
}
}
s.insert(k + n);
sum += a[k + n];
for(int i = 1; i <= n; i++) {
sum -= a[i];
s.erase(i);
if(sum % 2) {
sum += a[i];
s.insert(i);
continue;
}
pos.clear();
pos[0] = 1;
for(auto j : s) {
for(int l = sum/2; l >= 0; l--) {
if(pos[l]) pos[l + a[j]] = 1;
}
}
if(pos[sum/2]) {
for(auto j:s) {
cout << j << " ";
}
return 0;
}
sum += a[i];
s.insert(i);
}
}
# | 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... |