Advertisement
Debml

ahahahahahahah

May 2nd, 2015
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.85 KB | None | 0 0
  1. //
  2. // main.cpp
  3. // socialadvertising
  4. //
  5. // Created by David Benitez on 5/2/15.
  6. // Copyright (c) 2015 David Benitez. All rights reserved.
  7. //
  8.  
  9. #include <stdio.h>
  10. int matriz[20][20];
  11. int minim;
  12. bool arr[20];
  13.  
  14. void resetMatriz(int x){
  15. for(int i = 0; i < x; i++){
  16. for(int j = 0; j < x; j++){
  17. if(i == j){
  18. matriz[i][j] = 1;
  19. }
  20. else{
  21. matriz[i][j] = 0;
  22. }
  23. }
  24. }
  25. }
  26.  
  27. void resetArr(int x){
  28. for(int i = 0; i < x; i++){
  29. arr[i] = false;
  30. }
  31. }
  32.  
  33. void metodo(int userNumber, int nivel, int nodo, int acum){
  34. if(nivel == 1){
  35. resetArr(userNumber);
  36. }
  37.  
  38. if(nivel < minim){
  39. for(int i = 0; i < userNumber; i++){
  40. if(matriz[nodo-1][i] == 1 && !arr[i]){
  41. arr[i] = true;
  42. acum++;
  43. }
  44. }
  45.  
  46. if(acum == userNumber){
  47. minim = nivel;
  48. //return minim;
  49. }
  50. else{
  51. int k = nodo;
  52. while(nivel < minim && k <= userNumber){
  53. metodo(userNumber, nivel+1, nodo+1, acum);
  54. k++;
  55. }
  56. }
  57. }
  58. //return minim;
  59. }
  60.  
  61. using namespace std;
  62. int main() {
  63.  
  64. int testCases, userNumber, a, numAmigos;
  65. scanf("%d", &testCases);
  66.  
  67. for(int i = 0; i < testCases; i++){
  68. scanf("%d", &userNumber);
  69.  
  70. resetMatriz(userNumber);
  71.  
  72. for(int j = 0; j < userNumber; j++){
  73. scanf("%d", &numAmigos);
  74. for(int k = 0; k < numAmigos; k++){
  75. scanf("%d", &a);
  76. matriz[j][a-1] = 1;
  77. }
  78. }
  79.  
  80. minim = userNumber;
  81.  
  82. metodo(userNumber ,1, 1, 0);
  83.  
  84. printf("%d\n", minim);
  85. }
  86.  
  87. return 0;
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement