Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2014
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.02 KB | None | 0 0
  1. #include <fstream.h>
  2. #include <iostream.h>
  3. ifstream f("date.in");
  4. int a[100][100],n,i,j,k,g[100][100],viz[10000],viz2[10000];
  5. int neviz(){
  6. for(i=1;i<=n;i++)
  7. if(viz[i]==0)
  8. return i;
  9. return 0;
  10. }
  11. int main()
  12. { int l,r,comp=0,max,min,p=0,pmax=0;
  13. f>>n;
  14. for(i=1;i<=n;i++)
  15. for(j=1;j<=n;j++)
  16. f>>a[i][j];
  17. for(k=1;k<=n;k++)
  18. for(i=1;i<=n;i++)
  19. for(j=1;j<=n;j++)
  20. if(a[i][j]==0&&i!=k&&j!=k)
  21. a[i][j]=a[i][k]*a[k][j];
  22.  
  23.  
  24. do{
  25. k=neviz();viz[k]++;
  26. l=0;max=0;min=1000;
  27. for(i=1;i<=n;i++)
  28. if(a[i][k]==1)
  29. {
  30. viz2[i]++;
  31. if(i<=min)
  32. min=i;
  33. if(i>=max)
  34. max=i;
  35. }
  36. r=0;
  37. for(j=1;j<=n;j++)
  38. if(a[k][j]==1)
  39. {
  40. viz2[j]++;
  41. if(j<=min)
  42. min=j;
  43. if(j>=max)
  44. max=j;
  45. }
  46. comp++;p=0;
  47. for(i=min;i<=max;i++)
  48. if(viz2[i]==2)
  49. {
  50. g[comp][++p]=i;
  51. if(p>=pmax)
  52. pmax=p;
  53. }
  54. }while(neviz());
  55. for(i=1;i<=comp;i++)
  56. {for(j=1;j<=pmax;j++)
  57. if(g[i][j]!=0)
  58. cout<<g[i][j]<<' ';
  59. cout<<endl;
  60. }
  61. return 0;
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement