Submission #1144978

#TimeUsernameProblemLanguageResultExecution timeMemory
1144978AgageldiTable Tennis (info1cup20_tabletennis)C++20
0 / 100
3118 ms674776 KiB
#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 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; } } }
#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...