fork(3) download
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int ans = 0;
  6. int n, k;
  7. char x[1000];
  8.  
  9. void find(int depth)
  10. {
  11. if(depth == n)
  12. {
  13. int gap = 0;
  14. int d = 0, start;
  15. for(int i = 1; i <= n; i++)
  16. {
  17. if(d == 0)
  18. {
  19. start = i;
  20. }
  21. if(x[i] == 'E')
  22. {
  23. d++;
  24. }
  25. else
  26. {
  27. d--;
  28. if(d < 0)
  29. {
  30. return;
  31. }
  32. if(d == 0)
  33. {
  34. if(i - start - 1 > gap)
  35. {
  36. gap = i - start - 1;
  37. }
  38. }
  39. }
  40. }
  41.  
  42. if(d == 0 && gap <= k)
  43. {
  44. ans++;
  45. }
  46.  
  47. return;
  48. }
  49.  
  50. x[depth + 1] = 'E';
  51. find(depth + 1);
  52. x[depth + 1] = 'L';
  53. find(depth + 1);
  54. }
  55.  
  56. int main()
  57. {
  58. cin >> n >> k;
  59. n *= 2;
  60.  
  61. find(0);
  62.  
  63. cout << ans;
  64. }
Success #stdin #stdout 0s 3344KB
stdin
6 8
stdout
90