Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //#include<bits/stdc++.h>
- #include<fstream>
- #include<vector>
- #include<iostream>
- #include <climits>
- #define long long long
- #define nln '\n'
- const long N = 45;
- using namespace std;
- fstream f1, f2;
- inline void openf()
- {
- f1.open("dattam.inp", ios:: in);
- f2.open("dattam.out", ios:: out);
- }
- inline void closef()
- {
- f1.close();
- f2.close();
- }
- long m, n;
- vector<vector<long>> a(N);
- void data()
- {
- cin >> n >> m;
- for (long i = 0; i != m; ++i)
- {
- long x, y;
- cin >> x >> y;
- a[x].push_back(y);
- a[y].push_back(x);
- }
- }
- vector<bool> cen(N, 0);
- long mic = SHRT_MAX;
- void build(long i)
- {
- if (i > n)
- {
- long ok = 1;
- for (long j = 1; j-1 != n; ++j)
- if (!cen[j])
- {
- long sat = 0;
- for (const auto &u : a[j])
- if (cen[u])
- {
- sat = 1;
- break;
- }
- if (!sat)
- {
- ok = 0;
- break;
- }
- }
- if (ok)
- {
- long coc = 0;
- for (long i = 1; i-1 != n; ++i)
- if (cen[i])
- ++coc;
- if (coc < mic)
- mic = coc;
- }
- return;
- }
- bool put = 0;
- if (cen[i])
- put = 1;
- else
- {
- for (const auto &j : a[i])
- if (cen[j])
- {
- put = 1;
- break;
- }
- }
- if (put == 0)
- {
- build(i+1);
- cen[i] = 1;
- build(i+1);
- cen[i] = 0;
- }
- else
- build(i+1);
- }
- void process()
- {
- build(1);
- }
- void view()
- {
- cout << mic << nln;
- }
- int main()
- {
- //cout << "Le Duc Phuc Long" << endl;
- openf();
- data();
- process();
- view();
- closef();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment