Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINS
- #include <fstream>
- #include <vector>
- #include <string>
- #include <set>
- #include <algorithm>
- #include <map>
- using namespace std;
- ifstream fin("input.txt");
- ofstream fout("output.txt");
- vector <vector<int>> mat;
- int vertex, edges; //вершина, грань
- vector <int> used(vertex);
- //vector <int> Pr(vertex, 0);
- bool dfs(int v, int prev){
- used[v] = 1;
- for (int i = 0; i < mat[v].size(); i++)
- {
- if (used[i] == 0 && mat[v][i] == 1 && i != prev){
- dfs(i, v);
- used[v] = 2;
- }
- if (used[i] == 1 && i != prev && mat[v][i] == 1)
- return false;
- }
- used[v] = 2;
- return true;
- }
- int main(){
- fin >> vertex >> edges;
- used.resize(vertex);
- mat.resize(vertex, vector<int>(vertex));
- for (int i = 0; i < vertex; i++)
- {
- for (int j=0; j < vertex; j++){
- mat[i][j] = 0;
- }
- }
- for (int i = 0; i < used.size(); i++)
- {
- used[i] = 0;
- }
- for (int i = 0; i < edges; i++){
- int a, b;
- fin >> a >> b;
- a--;
- b--;
- mat[a][b] = 1;
- mat[b][a] = 1;
- }
- int qq = 0;
- if (dfs(0, 0) == false){
- qq =0;
- }
- else{
- qq = 1;
- }
- for (int i = 0; i < used.size(); i++){
- if (used[i] != 2){
- qq = 0;
- }
- }
- if (qq == 1){
- fout << "YES";
- }
- else{
- fout << "NO";
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement