제출 #1328677

#제출 시각아이디문제언어결과실행 시간메모리
1328677mrcat2011Table Tennis (info1cup20_tabletennis)C++20
0 / 100
3095 ms2736 KiB
#include <bits/stdc++.h>

using namespace std;

typedef int64_t ll;
typedef string str;
typedef double dbl;
typedef char boolean;   

#define MOD 1000000000
#define println(n) cout << n << endl
#define print(n) cout << n << ' '
#define input(n) cin >> n;
#define vll vector<ll> 
#define vc vector<char>
#define vstr vector<str>
#define vdbl vector<dbl>
#define vbln vector<boolean>
#define vpll vector<pair<ll, ll>>
#define vplb vector<pair<ll, boolean>>  
#define vvl  vector<vector<ll>>
#define all(a) a.begin(), a.end()
#define mll map<ll, ll>
#define mcl map<char, ll>
#define mlb map<ll, boolean>
#define mcb map<char, bool>
#define mstrl map<str, ll>
#define mlstr map<ll, str>
#define sll set<ll> 
#define sc set<char>
#define sstr set<str>
#define sdbl set<dbl>
#define sbln set<boolean>
#define msll multiset<ll> 
#define msc multiset<char>
#define msstr multiset<str>
#define msdbl multiset<dbl>
#define msbln multiset<boolean>
#define pll pair<ll, ll>
#define hurryupmrcat ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);

template<typename T>
istream& operator>>(istream& is, vector<T>& v) {
    for (T& x : v) is >> x;
    return is;
}

template<typename T>
ostream& operator<<(ostream& os, vector<T>& v) {
    for (T x : v) os << x << ' ';
    return os;
}

template<typename T>
ostream& operator<<(ostream& os, set<T>& st) {
    for (T x : st) os << x << ' ';
    return os;
}

template<typename T>
ostream& operator<<(ostream& os, multiset<T>& mst) {
    for (T x : mst) os << x << ' ';
    return os;
}

vll stov(str s) {
    vll v;
    for (char c : s) {
        v.emplace_back(c - '0');
    }
    return v;
}

const ll MAX = 2e5 + 5;

struct BIT {
    ll n;
    vll ft;
    BIT(ll N) {
        n = N + 10;
        ft.assign(n + 5, 0);
    }
    void add(ll idx, ll val) {
        for (; idx <= n; idx += (idx & (-idx))) {
            ft[idx] += val;
        }
    }
    ll get(ll idx) {
        ll ret = 0;
        for (; idx >= 0; idx -= (idx & (-idx))) {
            ret += ft[idx];
        }
        return ret;
    }
};

bool Comp(pll p1, pll p2) {
    if (p1.second < p2.second) return false;
    return true;
}

ll Max (ll a, ll b) {
    if (a >= b) return a;
    return b;
}

ll Min (ll a, ll b) {
    if (a >= b) return b;
    return a;
}

bool IsPalindrome(vll v) {
    ll i = 0, j = v.size() - 1;

    while (i < j) {
        if (v[i] != v[j]) return false;
        i++;
        j--;
    }

    return true;
}

void solve () {
    ll n, k; cin >> n >> k;
    vll v(n + k); cin >> v;
    
    vll useds;
    for (ll mask = 1; mask < (1 << (n + k)); ++mask) {
        for (ll i = 0; i < (n + k); ++i) {
            if (mask & (1 << i)) {
                useds.emplace_back(v[i]);
            }
        }

        if (useds.size() == n) {
            for (ll mask2 = 1; mask2 < (1 << n); ++mask2) {
                ll sum_first = 0, sum_second = 0;
                for (ll j = 0; j < useds.size(); ++j) {
                    if (mask2 & (1 << j)) {
                        sum_first += useds[j];
                    } else {
                        sum_second += useds[j];
                    }
                }
                if (sum_first == sum_second) {
                    cout << useds << endl; return;
                }
            } 
        }
        useds.clear();
    }
}

int main(int argc, char const *argv[]) {  
    hurryupmrcat
    ll t = 1; //cin >> t;
    for (size_t cs = 1; cs <= t; ++cs) {
        solve();
    }
    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...