Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- ЗАПУСКАЕМ░░
- ░ГУСЯ░▄▀▀▀▄░ГИДРУ░░
- ▄███▀░◐░▄▀▀▀▄░░░░░░
- ░░▄███▀░◐░░░░▌░░░
- ░░░▐░▄▀▀▀▄░░░▌░░░░
- ▄███▀░◐░░░▌░░▌░░░░
- ░░░░▌░░░░░▐▄▄▌░░░░░
- ░░░░▌░░░░▄▀▒▒▀▀▀▀▄
- ░░░▐░░░░▐▒▒▒▒▒▒▒▒▀▀▄
- ░░░▐░░░░▐▄▒▒▒▒▒▒▒▒▒▒▀▄
- ░░░░▀▄░░░░▀▄▒▒▒▒▒▒▒▒▒▒▀▄
- ░░░░░░▀▄▄▄▄▄█▄▄▄▄▄▄▄▄▄▄▄▀▄
- ░░░░░░░░░░░▌▌░▌▌░░░░░
- ░░░░░░░░░░░▌▌░▌▌░░░░░
- ░░░░░░░░░▄▄▌▌▄▌▌░░░░░
- */
- /*
- #include <iostream>
- #include <string>
- #include <sstream>
- #include <vector>
- #include <cmath>
- #include <algorithm>
- #include <memory.h>
- #include <stdio.h>
- #include <stack>
- #include <deque>
- #include <queue>
- #include <set>
- #include <iterator>
- #include <map>
- #include <iomanip>
- #include <unordered_set>
- #define int long long
- #define pb push_back
- #define double long double
- #define endl "\n"
- #define un unsigned
- #define INF 1000000000009
- #define pii pair<int, int>
- #define all(v) v.begin(), v.end()
- using namespace std;
- istream& operator >> (istream& in, vector<int>& a)
- {
- for (int i = 0; i < a.size(); i++)
- {
- in >> a[i];
- }
- return in;
- }
- ostream& operator << (ostream& out, vector<int>& a)
- {
- for (int i = 0; i < a.size(); i++)
- {
- out << a[i] << " ";
- }
- return out;
- }
- signed main()
- {
- ios_base::sync_with_stdio();
- cin.tie(0);
- cout.tie(0);
- int n, k;
- cin >> n >> k;
- vector<int> min_mask(n);
- for (int i = 0; i < n; i++)
- {
- int p;
- cin >> p;
- int q = 0;
- for (int j = 0; j < p; j++)
- {
- int a;
- cin >> a;
- q += (1 << (a - 1));
- }
- min_mask[i] = q;
- }
- int ans = 0;
- int kol = 0, mx = INF;
- for (int mask = 0; mask < (1 << n) - 1; mask++)
- {
- int podmask = mask;
- int q = 0;
- kol = 0;
- for (int i = 0; podmask != 0; i++)
- {
- if (podmask & 1)
- {
- q = q | min_mask[i];
- kol++;
- }
- podmask = podmask >> 1;
- }
- if (q == (1 << k) - 1 && kol < mx)
- {
- mx = kol;
- ans = mask;
- }
- }
- kol = __builtin_popcount(ans);
- cout << kol << endl;
- for (int i = 0; ans > 0; i++)
- {
- if (ans & 1)
- {
- cout << i + 1 << " ";
- }
- ans = ans >> 1;
- }
- return 0;
- }*/
- /*
- ЗАПУСКАЕМ░░
- ░ГУСЯ░▄▀▀▀▄░ГИДРУ░░
- ▄███▀░◐░▄▀▀▀▄░░░░░░
- ░░▄███▀░◐░░░░▌░░░
- ░░░▐░▄▀▀▀▄░░░▌░░░░
- ▄███▀░◐░░░▌░░▌░░░░
- ░░░░▌░░░░░▐▄▄▌░░░░░
- ░░░░▌░░░░▄▀▒▒▀▀▀▀▄
- ░░░▐░░░░▐▒▒▒▒▒▒▒▒▀▀▄
- ░░░▐░░░░▐▄▒▒▒▒▒▒▒▒▒▒▀▄
- ░░░░▀▄░░░░▀▄▒▒▒▒▒▒▒▒▒▒▀▄
- ░░░░░░▀▄▄▄▄▄█▄▄▄▄▄▄▄▄▄▄▄▀▄
- ░░░░░░░░░░░▌▌░▌▌░░░░░
- ░░░░░░░░░░░▌▌░▌▌░░░░░
- ░░░░░░░░░▄▄▌▌▄▌▌░░░░░
- */
- #include <iostream>
- #include <string>
- #include <sstream>
- #include <vector>
- #include <cmath>
- #include <algorithm>
- #include <memory.h>
- #include <stdio.h>
- #include <stack>
- #include <deque>
- #include <queue>
- #include <set>
- #include <iterator>
- #include <map>
- #include <iomanip>
- #include <unordered_set>
- #define int long long
- #define pb push_back
- #define double long double
- #define endl "\n"
- #define un unsigned
- #define INF 1000000000009
- #define pii pair<int, int>
- #define all(v) v.begin(), v.end()
- using namespace std;
- istream& operator >> (istream& in, vector<int>& a)
- {
- for (int i = 0; i < a.size(); i++)
- {
- in >> a[i];
- }
- return in;
- }
- ostream& operator << (ostream& out, vector<int>& a)
- {
- for (int i = 0; i < a.size(); i++)
- {
- out << a[i] << " ";
- }
- return out;
- }
- signed main()
- {
- ios_base::sync_with_stdio();
- cin.tie(0);
- cout.tie(0);
- int n;
- cin >> n;
- vector <int> vc(n);
- cin >> vc;
- int ans = 0;
- vector <int> pr(1 << n);
- for (int mask = 1; mask < (1 << n) - 1; mask++)
- {
- int a = 0;
- for (int i = 0; i < n; i++)
- {
- if (mask >> i & 1)
- {
- a += vc[i];
- }
- }
- pr[mask] = a;
- }
- for (int mask = 1; mask < (1 << n) - 1; mask++)
- {
- int a = pr[mask];
- for (int up = mask; up < (1 << n); up = mask | (up + 1))
- {
- int sev = mask ^ up;
- if (sev == 0)
- {
- continue;
- }
- int b = pr[sev];
- ans = ans + (a % b);
- }
- }
- cout << ans;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement