Advertisement
Guest User

Untitled

a guest
Dec 12th, 2019
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.16 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3.  
  4. using namespace std;
  5.  
  6. ifstream f ("bipartit1mare.in"); ofstream g ("bipartit1mare.out");
  7.  
  8. int a[1001][1001],n,m,x,y;
  9. int gra[101];
  10. int mx=-1,mn=99999999;
  11.  
  12. void citire1 ()
  13. {
  14. f>>n>>m;
  15. while (m)
  16. {
  17. f>>x>>y;
  18. a[x][y]=a[y][x]=1;
  19. m--;
  20.  
  21. }
  22. }
  23. int v[10001];
  24. int esteBip=1;
  25. int q[10001];
  26. int bfs(int start)
  27. {
  28. int i,k,st,dr;
  29.  
  30. st=dr=1;
  31. q[1]=start;
  32. v[start]=1;
  33. while(st<=dr)
  34. {
  35. k=q[st];
  36. st++;
  37. for(i=1;i<=n;i++)
  38. if(v[i]==0 && a[k][i]==1)
  39. {
  40. v[i]=-v[k];
  41. q[++dr]=i;
  42. }
  43.  
  44. }
  45. }
  46.  
  47. bool verifica()
  48. {
  49. int i,j;
  50. bool ok = 1;
  51. for(i=1; i<=n && ok; i++)
  52. for(j=i+1; j<=n; j++)
  53. if(v[i] == v[j] && a[i][j])
  54. ok = 0;
  55. if(ok)
  56. return 1;
  57. return 0;
  58. }
  59.  
  60. int main()
  61. {
  62. citire1();
  63.  
  64. for (int i=1;i<=n;i++)
  65. if (v[i]==0)
  66. bfs(i);
  67. if (verifica())
  68. {
  69. g<<"DA"<<endl;
  70.  
  71. for (int i=1;i<=n;i++)
  72. if (v[i]==1) g<<i<< " ";
  73. g<<endl;
  74. for (int i=1;i<=n;i++)
  75. if (v[i]==-1) g<<i<< " ";
  76. }
  77. else
  78. g<<"NU";
  79.  
  80. return 0;
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement