fork download
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6. string zagrade;
  7.  
  8. void generisi_zagrade(int n, int duzina, int otvorena, int zatvorena, string kombinacija)
  9. {
  10. if (zagrade[duzina] != '.' and zagrade[duzina] != kombinacija[duzina])
  11. return;
  12. if (otvorena == n and zatvorena == n)
  13. {
  14. cout << kombinacija << "\n";
  15. return;
  16. }
  17. if (otvorena < n)
  18. generisi_zagrade(n, duzina + 1, otvorena + 1, zatvorena, kombinacija + "(");
  19. if (zatvorena < otvorena)
  20. generisi_zagrade(n, duzina + 1, otvorena, zatvorena + 1, kombinacija + ")");
  21. }
  22.  
  23. int main()
  24. {
  25. ios_base::sync_with_stdio(false);
  26. cin >> zagrade;
  27. int n = zagrade.length();
  28. generisi_zagrade(n / 2, 0, 1, 0, "(");
  29. return 0;
  30. }
Success #stdin #stdout 0.01s 5332KB
stdin
..(..)
stdout
((()))
()(())
()()()