Advertisement
a53

arce_inutile

a53
Mar 2nd, 2020
214
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.04 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3. int A[101][101],n,m,S[101],P[101],c,k;
  4.  
  5. void DF_succ(int v,int c)
  6. {
  7. S[v]=c;
  8. for(int i=1;i<=n;++i)
  9. if(!S[i]&&A[v][i])
  10. DF_succ(i,c);
  11. }
  12.  
  13. void DF_pred(int v,int c)
  14. {
  15. P[v]=c;
  16. for(int i=1;i<=n;++i)
  17. if(!P[i]&&A[i][v])
  18. DF_pred(i,c);
  19. }
  20.  
  21. int main()
  22. {
  23. cin>>n>>m;
  24. for(int i=1;i<=m;++i)
  25. {
  26. int x,y;
  27. cin>>x>>y;
  28. A[x][y]=1;
  29. }
  30. for(int i=1;i<=n;++i)
  31. if(!S[i])
  32. {
  33. ++c;
  34. DF_succ(i,c);
  35. DF_pred(i,c);
  36. for(int j=1;j<=n;++j)
  37. if(S[j]!=P[j])
  38. S[j]=P[j]=0;
  39. }
  40. for(int i=1;i<=n;++i)
  41. for(int j=1;j<=n;++j)
  42. if(A[i][j]==1)
  43. if(S[i]!=S[j])
  44. ++k;
  45. cout<<k<<'\n';
  46. for(int i=1;i<=n;i++)
  47. for(int j=1;j<=n;j++)
  48. if(A[i][j]==1)
  49. if(S[i]!=S[j])
  50. cout<<i<<' '<<j<<'\n';
  51. return 0;
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement