Alx09

Ex15

Apr 25th, 2020
388
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.16 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4.  
  5. int v[6], n, m;
  6. FILE *g;
  7.  
  8. void Init(int k) {
  9. v[k] = 0;
  10. }
  11. int Succesor(int k) {
  12. if (v[k] < n) {
  13. v[k]++;
  14. return 1;
  15. }
  16. return 0;
  17. }
  18.  
  19. int Valid(int k) {
  20. return 1;
  21. }
  22.  
  23. int Solution(int k) {
  24. return (k == m/2);
  25. }
  26.  
  27. void Print() {
  28. int i,j;
  29. if (m & 1) {
  30. for (j = 1; j <= n; j++) {
  31. for (i = 1; i <= m / 2; i++)
  32. fprintf(g, "%d ", v[i]);
  33. fprintf(g, "%d ", j);
  34. for (i = m/2; i >= 1; i--)
  35. fprintf(g, "%d ", v[i]);
  36. fprintf(g, "\n");
  37. }
  38. return ;
  39. }
  40.  
  41. for (i = 1; i <= m / 2; i++)
  42. fprintf(g, "%d ", v[i]);
  43. for (i = m/2; i >= 1 ; i--)
  44. fprintf(g, "%d ", v[i]);
  45.  
  46. fprintf(g,"\n");
  47. }
  48.  
  49. void Back() {
  50. int k = 1, isS, isV;
  51. Init(k);
  52. while (k > 0) {
  53. isS = 0; isV = 0;
  54. if (k <= m/2)
  55. do {
  56. isS = Succesor(k);
  57. if (isS) isV = Valid(k);
  58. } while (isS && !isV);
  59. if (isS)
  60. if (Solution(k))
  61. Print();
  62. else {
  63. k++;
  64. Init(k);
  65. }
  66. else
  67. k--;
  68. }
  69. }
  70.  
  71. int main() {
  72. FILE *f;
  73. f = fopen("in.txt", "r");
  74. g = fopen("out.txt", "w");
  75. fscanf(f, "%d", &n);
  76. fscanf(f, "%d", &m);
  77.  
  78. Back();
  79. system("pause");
  80. return 0;
  81.  
  82. }
Advertisement
Add Comment
Please, Sign In to add comment