Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- const int N = 6;
- int m[N][N];
- char used[N]{};
- void fill_the_matrix() {
- for (int i = 0; i < N; i++)
- for (int j = 0; j < N; j++)
- cin >> m[i][j];
- }
- void dfs(int s) {
- used[s] = 1;
- for (int i = 0; i < N; i++) {
- if (used[i] == 0 && m[s][i] == 1)
- dfs(i);
- }
- }
- void dfs2(int s) {
- used[s] = 1;
- for (int i = 0; i < N; i++) {
- if (used[i] == 0 && (m[s][i] == 1 || m[i][s] == 1))
- dfs2(i);
- }
- }
- int sum_edges() {
- int sum = 0;
- for (int i = 0; i < N; i++)
- for (int j = 0; j < N; j++)
- sum += abs(m[i][j]);
- return sum;
- }
- int main()
- {
- cout << " Enter matrix ";
- int cnt = 0;
- int edges = 0;
- int highs = N;
- fill_the_matrix();
- edges = sum_edges();
- //dfs(3);
- char ch;
- cout << "Which type of graph have you written ? (a - non orient / b - orient)\n";
- cin >> ch;
- for (int i = 0; i < N; i++) {
- if (used[i] == 0) {
- if (ch == 'a') {
- dfs(i);
- }
- else {
- dfs2(i);
- }
- cnt++;
- }
- }
- if (ch == 'a') {
- edges /= 2;
- }
- cout << "KCC: " << cnt << endl;
- cout << "Edges: " << edges << endl;
- cout << "Higs: " << highs << endl;
- int l = edges - highs + cnt;
- cout << "Your result: " << l;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement