제출 #1144990

#제출 시각아이디문제언어결과실행 시간메모리
1144990AgageldiTable Tennis (info1cup20_tabletennis)C++20
0 / 100
3117 ms780268 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> ll T, n, a[N], t, k, sum; set <ll> s; map <ll,ll> 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 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...