Untitled
// y.ha #include <bits/stdc++.h> #define cook '\n' #define maxn #define Task "CARIBE" using namespace std; struct D { long long w, v ; }; vector<D> A,B; int n; long long k ; void inp() { cin >> n >> k ; int hn = n / 2; A.resize(hn + 5) ; B.resize(hn + 5) ; for ( int i = 1; i <= hn; i++ ) cin >> A[i].w >> A[i].v ; for ( int i = 1; hn + i <= n; i++ ) cin >> B[i].w >> B[i].v ; } vector<D> create(vector<D> X) { int s = X.size(), cnt = 0; vector<D> S(s+1); for (int i = 0; i < (1 << s); i++) { long long m = 0, t = 0; for (int j = 0; j < s; j++) { if (i & (1 << j)) { m += X[j].w; t += X[j].v; } } S[++cnt] = {m,t}; } return S; } int main() { ios_base::sync_with_stdio(0) ; cin.tie(nullptr) ; if(fopen(Task".INP","r")) { freopen(Task".INP","r",stdin); freopen(Task".OUT","w",stdout); } inp() ; vector<D> cA = create(A) ; vector<D> cB = create(B) ; for ( D x : cA ) cout << x.w << " " << x.v << cook ; return(0) ; }
Leave a Comment