Advertisement
Okorosso

Дерево

May 26th, 2021
930
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.28 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINS
  2. #include <fstream>
  3. #include <vector>
  4. #include <string>
  5. #include <set>
  6. #include <algorithm>
  7. #include <map>
  8.  
  9. using namespace std;
  10. ifstream fin("input.txt");
  11. ofstream fout("output.txt");
  12. vector <vector<int>> mat;
  13. int vertex, edges; //вершина, грань
  14. vector <int> used(vertex);
  15. //vector <int> Pr(vertex, 0);
  16.  
  17. bool dfs(int v, int prev){
  18.     used[v] = 1;
  19.     for (int i = 0; i < mat[v].size(); i++)
  20.     {
  21.         if (used[i] == 0 && mat[v][i] == 1 && i != prev){
  22.             dfs(i, v);
  23.             used[v] = 2;
  24.         }
  25.         if (used[i] == 1 && i != prev && mat[v][i] == 1)
  26.             return false;
  27.     }
  28.     used[v] = 2;
  29.     return true;
  30.        
  31. }
  32.  
  33.  
  34. int main(){
  35.  
  36. fin >> vertex >> edges;
  37.     used.resize(vertex);
  38.     mat.resize(vertex, vector<int>(vertex));
  39.    
  40.     for (int i = 0; i < vertex; i++)
  41.     {
  42.         for (int j=0; j < vertex; j++){
  43.             mat[i][j] = 0;
  44.         }
  45.     }
  46.  
  47.     for (int i = 0; i < used.size(); i++)
  48.     {
  49.         used[i] = 0;
  50.  
  51.     }
  52.  
  53.     for (int i = 0; i < edges; i++){
  54.         int a, b;
  55.         fin >> a >> b;
  56.         a--;
  57.         b--;
  58.         mat[a][b] = 1;
  59.         mat[b][a] = 1;
  60.     }
  61.     int qq = 0;
  62. if (dfs(0, 0) == false){
  63.         qq =0;
  64.     }
  65.     else{
  66.         qq = 1;
  67.     }
  68.     for (int i = 0; i < used.size(); i++){
  69.         if (used[i] != 2){
  70.             qq = 0;
  71.         }
  72.     }
  73.     if (qq == 1){
  74.             fout << "YES";
  75.     }
  76.     else{
  77.         fout << "NO";
  78.     }
  79.  
  80.     return 0;
  81.  
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement