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