Advertisement
Guest User

Untitled

a guest
Dec 16th, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.10 KB | None | 0 0
  1. include <algorithm>
  2. #include <string>
  3. #include <vector>
  4. #include <map>
  5. #include <stack>
  6. #include <queue>
  7.  
  8. using namespace std;
  9.  
  10. const int N = 1e6;
  11.  
  12. int n, m, k;
  13. string s;
  14.  
  15. string *nextbrackets(string &s) {
  16. int close_cnt = 0, open_cnt = 0, i;
  17.  
  18. for (i = s.size() - 1; i >= 0; --i) {
  19. if (s[i] == '(') {
  20. ++open_cnt;
  21. if (close_cnt > open_cnt) {
  22. break;
  23. }
  24. }
  25. else {
  26. ++close_cnt;
  27. }
  28. }
  29.  
  30. s = s.substr(0, max(i, 0));
  31. if (s.empty()) {
  32. return nullptr;
  33. }
  34.  
  35. s.push_back(')');
  36. for (i = 0; i < open_cnt; ++i) {
  37. s.push_back('(');
  38. }
  39. for (i = 1; i < close_cnt; ++i) {
  40. s.push_back(')');
  41. }
  42. return &s;
  43. }
  44.  
  45. int main() {
  46. #ifdef _DEBUG
  47. freopen("input.txt", "r", stdin);
  48. freopen("output.txt", "w", stdout);
  49. #else
  50. freopen(FNAME".in", "r", stdin);
  51. freopen(FNAME".out", "w", stdout);
  52. #endif
  53. ios::sync_with_stdio(false);
  54.  
  55. cin >> s;
  56. cout << (nextbrackets(s) ? s : "-") << '\n';
  57.  
  58. return 0;
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement