fork(1) download
  1. #include <stdio.h>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. int n;
  7. vector <char> ans;
  8.  
  9. bool flag;
  10.  
  11. void Print(int x, int y, int w){
  12. if(x + y > n)return ;
  13. else if(x + y == n){
  14. flag = true;
  15. for(int i=0; i<ans.size(); i++)printf("%c", ans[i]);
  16. // last character is always X
  17. printf("X\n");
  18. }
  19. if(w == 1 || w == -1){
  20. ans.push_back('X');
  21. Print(x+y, y, 0);
  22. ans.pop_back();
  23. ans.push_back('Y');
  24. Print(x, x+y, 1);
  25. ans.pop_back();
  26. }else{
  27. ans.push_back('Y');
  28. Print(x, x+y, 1);
  29. ans.pop_back();
  30. ans.push_back('X');
  31. Print(x+y, y, 0);
  32. ans.pop_back();
  33. }
  34. }
  35.  
  36. int main()
  37. {
  38. int t;
  39. scanf("%d", &t);
  40.  
  41. while(t--){
  42. scanf("%d", &n);
  43.  
  44. flag = false;
  45.  
  46. Print(1, 1, -1);
  47. }
  48. }
Success #stdin #stdout 0s 3476KB
stdin
4
10
3
20
34
stdout
XXYYX
XXXXXXXXX
YYXXX
YYYYYYYYX
XX
YX
XYXXXXXX
XYYYYXX
XXXXXYXX
XXXXXXXXXXXXXXXXXXX
YXYYYYYX
YXXXXYX
YYYYYXYX
YYYYYYYYYYYYYYYYYYX
XYXYXYX
XYYYXYYX
XXYXXXYX
XXYYYYYYYYYYX
XXXYXXXXXX
XXXXXYXXXX
XXXXXXXXXXYYX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
YXYXYXX
YXXXYXXX
YYXYYYXX
YYXXXXXXXXXXX
YYYXYYYYYX
YYYYYXYYYX
YYYYYYYYYYXXX
YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYX