Advertisement
Guest User

Untitled

a guest
Nov 19th, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.35 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. #define N 10
  6.  
  7. char* nomi[N] = { "Gio", // 0
  8. "Zanon", // 1
  9. "Alessia", // 2
  10. "Teo", // 3
  11. "Ronca", // 4
  12. "Fabbro", // 5
  13. "Persia", // 6
  14. "Luca", // 7
  15. "Lucia", // 8
  16. "Baldo", // 9
  17. };
  18.  
  19. int giftTo[N] = { 0 };
  20. int occup[N] = { 0 };
  21.  
  22. int isValid()
  23. {
  24. for (int i = 0; i < N; i++)
  25. {
  26. if (giftTo[i] == i) return 0; // Everyone to self
  27. }
  28.  
  29. if (giftTo[0] == 3) return 0; // Gio to Teo
  30. if (giftTo[1] == 4) return 0; // Zanon to Ronca
  31. if (giftTo[2] == 8) return 0; // Alessia to Lucia
  32. if (giftTo[3] == 9) return 0; // Teo to Baldo
  33. if (giftTo[4] == 2) return 0; // Ronca to Alessia
  34. if (giftTo[7] == 1) return 0; // Luca to Zanon
  35. if (giftTo[8] == 7) return 0; // Lucia to Luca
  36. if (giftTo[9] == 0) return 0; // Baldo to Gio
  37.  
  38. if (giftTo[2] == 3 || giftTo[3] == 2) return 0; // Alessia to Teo or Teo to Alessia
  39.  
  40. return 1;
  41. }
  42.  
  43. int main()
  44. {
  45. srand(time(NULL));
  46.  
  47. do
  48. {
  49. for (int i = 0; i < N; i++)
  50. {
  51. occup[i] = 0;
  52. }
  53. for (int i = 0; i < N; i++)
  54. {
  55. do
  56. {
  57. giftTo[i] = rand() % N;
  58. } while (occup[giftTo[i]] == 1);
  59. occup[giftTo[i]] = 1;
  60. }
  61.  
  62. } while (!isValid());
  63.  
  64. for (int i = 0; i < N; i++)
  65. {
  66. printf("%10s deve fare un regalo a %s\n", nomi[i], nomi[giftTo[i]]);
  67. }
  68.  
  69. getchar();
  70. return 0;
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement