Advertisement
Alx09

Cristina lab

Jun 1st, 2020
1,080
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.89 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4.  
  5. int v[10000], n;
  6. char stiva[] = { 'A', 'C', 'D' };
  7.  
  8. void Init(int k) {
  9.     v[k] = 0;
  10. }
  11. int Succesor(int k) {
  12.     if (v[k] < 3) {
  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 == n/2);
  25. }
  26.  
  27. void Print() {
  28.     int i;
  29.     for (i = 1; i <= n/2; i++)
  30.         printf("%cB", stiva[v[i] -1]);
  31.     printf("\n");
  32.     for (i = 1; i <= n/2; i++)
  33.         printf("B%c", stiva[v[i] -1]);
  34.    
  35.     printf("\n");
  36. }
  37.  
  38. void Back() {
  39.     int k = 1, isS, isV;
  40.     Init(k);
  41.     while (k > 0) {
  42.         isS = 0; isV = 0;
  43.         if (k <= n/2)
  44.             do {
  45.                 isS = Succesor(k);
  46.                 if (isS) isV = Valid(k);
  47.             } while (isS && !isV);
  48.             if (isS)
  49.                 if (Solution(k))
  50.                     Print();
  51.                 else {
  52.                     k++;
  53.                     Init(k);
  54.                 }
  55.             else
  56.                 k--;
  57.     }
  58. }
  59.  
  60. int main() {
  61.     printf("n = "); scanf("%d", &n);
  62.     Back();
  63.     system("pause");
  64.     return 0;
  65.  
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement