fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define int long long
  4. #define vi vector<int>
  5. #define fi first
  6. #define se second
  7. #define pb push_back
  8. #define ii pair<int , int>
  9. #define pq priority_queue
  10. #define iii pair<int , pair<int , int>>
  11. #define fo(i,l,r) for(int i=l;i<=r;i++)
  12. #define fod(i,r,l) for(int i=r;i>=l;i--)
  13. #define fill(f,x) memset(f,x,sizeof(f))
  14. #define NAME "file"
  15.  
  16. const int N = 2e5 + 5, mod = 1e9 + 7;
  17. int n , k , a[21] , b[21] , p[21] , cnt = 0;
  18.  
  19. void sol(int i)
  20. {
  21. if (i > n)
  22. {
  23. stack <int> st;
  24. bool check = true;
  25. int dem = 0;
  26. for (int j = 1 ; j <= n ; j++)
  27. {
  28. if (p[j] == 0)
  29. {
  30. st.push(0);
  31. dem++; // số ngoặc mở liên tiếp
  32. if (dem > k)
  33. {
  34. check = false;
  35. break;
  36. }
  37. }
  38. else
  39. {
  40. dem = 0;
  41. if (st.empty())
  42. {
  43. check = false;
  44. break;
  45. }
  46. st.pop();
  47. }
  48. }
  49. if (st.empty() && check)
  50. {
  51. for (int j = 1 ; j <= n ; j++)
  52. {
  53. if (p[j] == 0) cout << '(';
  54. else cout << ')';
  55. }
  56. cout << '\n';
  57. }
  58. }
  59. else
  60. {
  61. for (int j = 0 ; j <= 1 ; j++)
  62. {
  63. p[i] = j;
  64. sol(i + 1);
  65. }
  66. }
  67. }
  68.  
  69. signed main()
  70. {
  71. ios_base::sync_with_stdio(0);
  72. cin.tie(0); cout.tie(0);
  73. //freopen(NAME".INP" , "r" , stdin);
  74. //freopen(NAME".OUT" , "w" , stdout);
  75.  
  76. cin >> n >> k;
  77. sol(1);
  78. }
  79. // haronnee_
Success #stdin #stdout 0.01s 5296KB
stdin
Standard input is empty
stdout