fork download
  1. #include<bits/stdc++.h>
  2. #define ll long long
  3. #define ull unsigned long long
  4. #define nl '\n'
  5. #define mod 1000000007
  6. #define fori(i,n) for(ll i=0;i < n;i++)
  7. #define forn(i,n) for(ll i=1;i <= n;i++)
  8. #define forx(i,x,n) for(ll i=x;i < n;i++)
  9. #define sortx(x) sort(x.begin(),x.end())
  10. #define sorty(x) sort(x.begin(),x.end(),greater<>())
  11. using namespace std;
  12. /*#include <ext/pb_ds/assoc_container.hpp>
  13. #include <ext/pb_ds/tree_policy.hpp>
  14. using namespace __gnu_pbds;
  15. template<typename T>
  16. using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
  17. using namespace __gnu_pbds;
  18. #define ordered_multiset tree<int, null_type, less_equal<int>, rb_tree_tag, tree_order_statistics_node_update>
  19.  
  20. ll Mod(ll base, ll exp, ll MOD){
  21.   if(exp == 0) return 1;
  22.   ll res = Mod(base,exp/2,MOD);
  23.   if(exp % 2)
  24.   return (((res * res) % MOD)*base) % MOD;
  25.   else
  26.   return (res*res) % MOD;
  27. }
  28.  
  29. ll gcd(ll x,ll y){
  30.   ll b = min(x,y);
  31.   ll a = max(x,y);
  32.   while(b != 0){
  33.   ll temp = b;
  34.   b = a % b;
  35.   a = temp;
  36.   }
  37.   return a;
  38. }
  39.  
  40. vector<bool> primes(3001,true);
  41. vector<int> dv(3001,0);
  42.  
  43. void sieve(){
  44.   primes[0] = primes[1] = false;
  45.   forn(i,3000){
  46.   if(primes[i]){
  47.   for(int j=i*2;j <= 3000;j+=i){
  48.   primes[j] = false;
  49.   }
  50.   }
  51.   }
  52. }
  53.  
  54. ll div(vector<vector<int>> &x){
  55.   for(ll i=1;i <= 3000;i++){
  56.   for(ll j=i;j <= 3000;j+=i){
  57.   x[j].push_back(i);
  58.   }
  59.   }
  60.   int c=0;
  61.   for(ll i=1;i <= 3000;i++){
  62.   int count=0;
  63.   for(ll j=0;j < x[i].size();j++){
  64.   if(primes[x[i][j]]) count++;
  65.   }
  66.   if(count == 2) c++;
  67.   dv[i] = c;
  68.   }
  69. }
  70.  
  71. bool prime(ll n){
  72.   int c=0;
  73.   for(ll i=1;i <= n;i++){
  74.   if(n % i == 0) c++;
  75.   if(c > 2) break;
  76.   }
  77.   if(c == 2) return true;
  78.   return false;
  79. }*/
  80.  
  81. int main(){
  82. ios::sync_with_stdio(false);
  83. cin.tie(nullptr);
  84. int idx=0;
  85. string x;
  86. cin >> x;
  87. vector<pair<int,char>> n;
  88. n.push_back({0,x[0]});
  89. for(int i=0;i < x.length()-1;i++){
  90. if(x[i] == '(') idx++;
  91. else idx--;
  92. n.push_back({idx,x[i+1]});
  93. }
  94. sortx(n);
  95. for(auto it : n)
  96. cout << it.second;
  97. }
Success #stdin #stdout 0.01s 5292KB
stdin
(()(()))
stdout
((()()))