diff --git a/Answer58.cpp b/Answer58.cpp index db9b4d9..68a1245 100644 --- a/Answer58.cpp +++ b/Answer58.cpp @@ -1,4 +1,5 @@ #include + void prepareadjlist(unordered_map < int, set > & adjlist, vector> & edges){ for(int i=0; i < edges.size(); i++){ @@ -9,6 +10,8 @@ void prepareadjlist(unordered_map < int, set > & adjlist, vector > & adjlist, vector & ans, unordered_map & visited, int node){ @@ -49,6 +52,6 @@ vector BFS(int vertex, vector> edges) return ans ; } - - + + \ No newline at end of file diff --git a/Answer59.cpp b/Answer59.cpp new file mode 100644 index 0000000..7780379 --- /dev/null +++ b/Answer59.cpp @@ -0,0 +1,35 @@ +#include + +using namespace std; +#define MAX 10001 + +int parent[MAX]; +int sz[MAX]; + + + +void make_set(int v) { + parent[v] = v; + sz[v] = 1; +} + +int find_set(int v) { + if (v == parent[v]) + return v; + return parent[v] = find_set(parent[v]); +} + +void union_sets(int a, int b) { + a = find_set(a); + b = find_set(b); + if (a != b) { + if (sz[a] < sz[b]) + swap(a, b); + parent[b] = a; + sz[a] += sz[b]; + } +} + +int main(){ + +} \ No newline at end of file diff --git a/Answer69.cpp b/Answer69.cpp new file mode 100644 index 0000000..3ba9118 --- /dev/null +++ b/Answer69.cpp @@ -0,0 +1,58 @@ +#include + +#define fastio \ + ios_base::sync_with_stdio(false); \ + cin.tie(NULL) + +#define endl "\n" + +using namespace std; + +#define MAX 10000 + +vectorgraph[MAX+1]; +vectorvisible(MAX+1,0); +vectorcolor(MAX+1,0); + + + bool is_bipartite(int node , int c ){ + visible[node]=1; + color[c]=c; + + for(int child : graph[node]){ + if(visible[child]==0){ + if(is_bipartite(child,c^1)==false) + return false; + } + else if(color[node]==color[child]) + return false; + } + return true; + } + +int main() +{ + fastio; + // code goes here + int number_of_node; + cin>>number_of_node; + + + int number_of_edge; + cin>>number_of_edge; + + for(int i=1; i <=number_of_edge; i++){ + int a,b; + cin>>a>>b; + graph[a].push_back(b); + graph[b].push_back(a); + } + + is_bipartite(1,0)?cout<<"GRAPH IS BIPARTITE"<