Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- using namespace std;
- ifstream f ("bipartit1mare.in"); ofstream g ("bipartit1mare.out");
- int a[1001][1001],n,m,x,y;
- int gra[101];
- int mx=-1,mn=99999999;
- void citire1 ()
- {
- f>>n>>m;
- while (m)
- {
- f>>x>>y;
- a[x][y]=a[y][x]=1;
- m--;
- }
- }
- int v[10001];
- int esteBip=1;
- int q[10001];
- int bfs(int start)
- {
- int i,k,st,dr;
- st=dr=1;
- q[1]=start;
- v[start]=1;
- while(st<=dr)
- {
- k=q[st];
- st++;
- for(i=1;i<=n;i++)
- if(v[i]==0 && a[k][i]==1)
- {
- v[i]=-v[k];
- q[++dr]=i;
- }
- }
- }
- bool verifica()
- {
- int i,j;
- bool ok = 1;
- for(i=1; i<=n && ok; i++)
- for(j=i+1; j<=n; j++)
- if(v[i] == v[j] && a[i][j])
- ok = 0;
- if(ok)
- return 1;
- return 0;
- }
- int main()
- {
- citire1();
- for (int i=1;i<=n;i++)
- if (v[i]==0)
- bfs(i);
- if (verifica())
- {
- g<<"DA"<<endl;
- for (int i=1;i<=n;i++)
- if (v[i]==1) g<<i<< " ";
- g<<endl;
- for (int i=1;i<=n;i++)
- if (v[i]==-1) g<<i<< " ";
- }
- else
- g<<"NU";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement