Advertisement
Guest User

Untitled

a guest
Apr 1st, 2015
243
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.75 KB | None | 0 0
  1.  
  2.  
  3. /*
  4. Idee :
  5. Atata timp cat gradul unui nod este > 2
  6. din el pornesc cicluri de inserat in ciclul anterior.
  7. Adica :
  8. "Stau pe nod" pana cand il rezolv complet
  9. ( i.e. " strategie "nu ma grabesc" )
  10. ============================================
  11.  
  12.  
  13. 5*
  14.  
  15. 1* 4* *6
  16.  
  17. 2* *3 *9
  18.  
  19. *7 *8 *10
  20.  
  21. */
  22. #include<iostream>
  23. #include<fstream>
  24. using namespace std;
  25.  
  26. int G[100][100];
  27. int n;
  28. int nr1,nr2;
  29. int C1[100];
  30. int C2[100];
  31. int edges[100];
  32.  
  33. int read_data()
  34. { fstream f;
  35. f.open("input.txt",ios::in);
  36. f>>n;
  37. for(int i=1;i<=n;i++)
  38. {
  39. int dim=0;
  40. for(int j=1;j<=n;j++)
  41. {
  42. int aux;
  43. f>>aux;
  44. G[i][j]=aux;
  45. if(aux==1)
  46. {
  47. dim++;
  48. }
  49.  
  50. }
  51. edges[i]=dim;
  52.  
  53. }
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60. }
  61. int print_data(int here[],int dimension)
  62. {for(int i=1;i<=dimension;i++)
  63. cout<<here[i];
  64.  
  65. }
  66. int insertc2inc1(int c1[],int *dimc1,int c2[],int dimc2,int k)
  67. {
  68. // deplasare
  69. for(int i=*dimc1;i>=k+1;i--) c1[i+dimc2-1]=c1[i];
  70.  
  71. // insertie
  72. for(int i=1;i<=dimc2;i++) c1[k+i-1]=c2[i];
  73.  
  74. *dimc1=*dimc1+dimc2-1;
  75.  
  76. return 0; }
  77.  
  78. int init_cicle(int some_cicle[],int *my_nodes)
  79. {*my_nodes=0;}
  80.  
  81. int make_cicle(int here[],int *dimension,int vertex)
  82. {
  83. if ( edges[vertex]==0 ) { print_data(C1,nr1); return 0; }
  84. else
  85. {
  86.  
  87. if (edges[vertex]>2) {
  88. // construiesc ciclul de tip C2 ( de inserat in ciclul de tip C1 )
  89. // ...
  90. init_cicle(C2,&nr2);
  91. make_cicle(C2,&nr2,vertex);
  92. insertc2inc1(here,dimension,C2,nr2,vertex);
  93.  
  94. }
  95. else
  96. {
  97. // avansez in constructia ciclului de tip C1
  98. for ( int i=1;i<=n;i++ )
  99. {
  100. if (G[vertex][i]==1) {
  101. dimension++;
  102. here[*dimension]=i;
  103. edges[vertex]--;
  104. edges[i]--;
  105. cout<<"mama";
  106. make_cicle(here,dimension,i);
  107. }
  108. }
  109. }
  110. }
  111. }
  112.  
  113.  
  114. int main()
  115. {
  116. read_data();
  117. init_cicle(C1,&nr1);
  118. init_cicle(C2,&nr2);
  119. make_cicle(C1,&nr1,1);
  120. return 0; }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement