Submission details
Task:Bracket sequence
Sender:aalto25j_007
Submission time:2025-11-05 16:46:12 +0200
Language:C++ (C++20)
Status:READY
Result:
Test results
testverdicttime
#1ACCEPTED0.00 sdetails
#2ACCEPTED0.00 sdetails
#3ACCEPTED0.00 sdetails
#4ACCEPTED0.00 sdetails
#50.00 sdetails
#6ACCEPTED0.00 sdetails
#7ACCEPTED0.00 sdetails
#8ACCEPTED0.00 sdetails
#90.00 sdetails
#10ACCEPTED0.00 sdetails
#11ACCEPTED0.00 sdetails
#120.00 sdetails
#13ACCEPTED0.00 sdetails
#14ACCEPTED0.00 sdetails
#15ACCEPTED0.00 sdetails
#16ACCEPTED0.00 sdetails
#170.00 sdetails
#18ACCEPTED0.00 sdetails
#19ACCEPTED0.00 sdetails
#20ACCEPTED0.00 sdetails
#21ACCEPTED0.00 sdetails
#220.00 sdetails
#23ACCEPTED0.00 sdetails
#24ACCEPTED0.00 sdetails
#25ACCEPTED0.00 sdetails
#260.00 sdetails
#27ACCEPTED0.00 sdetails
#280.00 sdetails
#29ACCEPTED0.00 sdetails
#30ACCEPTED0.00 sdetails
#31ACCEPTED0.00 sdetails
#320.00 sdetails
#330.00 sdetails
#34ACCEPTED0.00 sdetails
#35ACCEPTED0.00 sdetails
#360.00 sdetails
#37ACCEPTED0.00 sdetails
#38ACCEPTED0.00 sdetails
#39ACCEPTED0.00 sdetails
#40ACCEPTED0.00 sdetails
#41ACCEPTED0.00 sdetails
#420.00 sdetails
#430.00 sdetails
#44ACCEPTED0.00 sdetails
#45ACCEPTED0.00 sdetails
#46ACCEPTED0.00 sdetails
#47ACCEPTED0.00 sdetails
#480.00 sdetails
#49ACCEPTED0.00 sdetails
#50ACCEPTED0.00 sdetails
#510.00 sdetails
#520.00 sdetails
#53ACCEPTED0.00 sdetails
#54ACCEPTED0.00 sdetails
#55ACCEPTED0.00 sdetails
#56ACCEPTED0.01 sdetails
#570.01 sdetails
#58ACCEPTED0.01 sdetails
#59ACCEPTED0.01 sdetails
#60ACCEPTED0.00 sdetails
#61ACCEPTED0.01 sdetails
#620.00 sdetails
#63ACCEPTED0.01 sdetails
#64ACCEPTED0.01 sdetails
#650.00 sdetails

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:74:17: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'll' {aka 'long long int'} [-Wsign-compare]
   74 |       if (r - l > maxr - maxl && lbr == rbr) {
      |           ~~~~~~^~~~~~~~~~~~~
input/code.cpp:22:40: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'll' {aka 'long long int'} [-Wsign-compare]
   22 | #define fr(i,a,b) for (size_t i = a; i < b; i++)
      |                                        ^
input/code.cpp:84:5: note: in expansion of macro 'fr'
   84 |     fr(i, maxl, maxr + 1) { cout << s[i]; }
      |     ^~

Code

// clang-format off
#include <bits/stdc++.h>
using namespace std;
#ifdef DO_DBG
template<typename A, typename B> ostream& operator<<(ostream &os, const pair<A, B> &p) { return os << '(' << p.first << ", " << p.second << ')'; }
template<typename T_container, typename T = typename enable_if<!is_same<T_container, string>::value, typename T_container::value_type>::type> ostream& operator<<(ostream &os, const T_container &v) { os << '{'; string sep; for (const T &x : v) os << sep << x, sep = ", "; return os << '}'; }
void dbg_out() { cerr << endl; }
template<typename Head, typename... Tail> void dbg_out(Head H, Tail... T) { cerr << ' ' << H; dbg_out(T...); }
#define dbg(...) cerr << "(" << #__VA_ARGS__ << "):", dbg_out(__VA_ARGS__)
#define dout cerr
#define debug true
#else
#define dbg(...)
#define dout if (0) cerr
#define debug false
#endif
typedef long long ll; typedef unsigned long long ull; typedef long double ld;
template <typename T> using v = vector<T>; template <typename T> using us = unordered_set<T>; template <typename K, typename V> using p = pair<K,V>;
template <typename K, typename V> using um = unordered_map<K, V>; template <typename K, typename V> using p = pair<K, V>;
template <typename T> using pq = priority_queue<T>; template <typename T> using nl = numeric_limits<T>; template <typename T> using il = initializer_list<T>;
constexpr int MOD = 1e9 + 7; constexpr int INF = 1e9; constexpr ld EPS = 1e-9;
#define fr(i,a,b) for (size_t i = a; i < b; i++)
#define fastio ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin.exceptions(cin.failbit);
#define frr(i,a,b) for (size_t i = b-1; i >= a; i--)
#define frs(i,a,b) for (ll i = a; i < b; i++)
#define all(v) v.begin(), v.end()
#define rall(v) v.rbegin(), v.rend()
#define sq(x) ((x) * (x))
template <typename... Args> void read(Args&... args) { ((cin >> args), ...); }
#define d(...) int __VA_ARGS__; read(__VA_ARGS__);
#define dll(...) ll __VA_ARGS__; read(__VA_ARGS__);
#define dv(x, n) vector<int> x(n); for (int i = 0; i < n; i++) cin >> x[i];
#define dvll(x, n) vector<long long> x(n); for (int i = 0; i < n; i++) cin >> x[i];
#define dvd(x, n) vector<double> x(n); for (int i = 0; i < n; i++) cin >> x[i];
ll ipow(ll a,int b){ll r=1;for(;b;b>>=1,a*=a)if(b&1)r*=a;return r;}
template<class F>struct y_combinator{F f;template<class...Args>decltype(auto)operator()(Args&&...args)const{return f(*this,forward<Args>(args)...);}};
constexpr auto get_nums=[]<typename T>(T&&s){istringstream iss(forward<T>(s));return vector<int>{istream_iterator<int>{iss},{}};};
#define even(x) ((x)%2==0)
#define odd(x) ((x)%2!=0)
// clang-format on

int main() {
  fastio;
  string s;
  getline(cin, s);
  // an regular bracket sequence has an equal amount of ( and )
  // going from left to right, there is always at least as much ( as )
  // so ()) is not valid.
  ll lbr = 0;
  ll rbr = 0;
  size_t l = 0;
  ll maxl = 0, maxr = 0;
  fr(r, 0, s.size()) {
    dbg(l, r, lbr, rbr);
    if (s[r] == '(') {
      lbr++;
    } else if (s[r] == ')') {
      rbr++;
    }
    if (rbr > lbr) {
      while (rbr > lbr) {
        if (s[l] == '(') {
          lbr--;
        } else if (s[l] == ')') {
          rbr--;
        }
        l++;
        dbg(l);
      }
      if (l > r) {
        r = l - 1;
      }
    } else {
      if (r - l > maxr - maxl && lbr == rbr) {
        maxl = l;
        maxr = r;
      }
    }
  }
  if (maxl == 0 && maxr == 0) {
    cout << "-1\n";
  } else {
    dbg(maxl, maxr);
    fr(i, maxl, maxr + 1) { cout << s[i]; }
    cout << '\n';
  }
}

Test details

Test 1

Verdict: ACCEPTED

input
(

correct output
-1

user output
-1

Test 2

Verdict: ACCEPTED

input
))

correct output
-1

user output
-1

Test 3

Verdict: ACCEPTED

input
((

correct output
-1

user output
-1

Test 4

Verdict: ACCEPTED

input
()

correct output
()

user output
()

Test 5

Verdict:

input
(()

correct output
()

user output
-1

Test 6

Verdict: ACCEPTED

input
()()

correct output
()()

user output
()()

Test 7

Verdict: ACCEPTED

input
))))

correct output
-1

user output
-1

Test 8

Verdict: ACCEPTED

input
())(

correct output
()

user output
()

Test 9

Verdict:

input
(()(

correct output
()

user output
-1

Test 10

Verdict: ACCEPTED

input
)))))

correct output
-1

user output
-1

Test 11

Verdict: ACCEPTED

input
())(()

correct output
()

user output
()

Test 12

Verdict:

input
))(()(

correct output
()

user output
-1

Test 13

Verdict: ACCEPTED

input
()(())

correct output
()(())

user output
()(())

Test 14

Verdict: ACCEPTED

input
()(())

correct output
()(())

user output
()(())

Test 15

Verdict: ACCEPTED

input
()((((

correct output
()

user output
()

Test 16

Verdict: ACCEPTED

input
(())(())((

correct output
(())(())

user output
(())(())

Test 17

Verdict:

input
)))((()(((

correct output
()

user output
-1

Test 18

Verdict: ACCEPTED

input
(()))(((((

correct output
(())

user output
(())

Test 19

Verdict: ACCEPTED

input
())(()())(

correct output
(()())

user output
(()())

Test 20

Verdict: ACCEPTED

input
))))))))))

correct output
-1

user output
-1

Test 21

Verdict: ACCEPTED

input
())(())(()

correct output
(())

user output
(())

Test 22

Verdict:

input
)((())(()(

correct output
(())

user output
-1

Test 23

Verdict: ACCEPTED

input
()(())()()

correct output
()(())()()

user output
()(())()()

Test 24

Verdict: ACCEPTED

input
()(())((()

correct output
()(())

user output
()(())

Test 25

Verdict: ACCEPTED

input
()((((((((

correct output
()

user output
()

Test 26

Verdict:

input
((((((())))))))(((((((((()))))...

correct output
(((((())))))(((((((((()))))(((...

user output
((((((()))))))

Test 27

Verdict: ACCEPTED

input
)))((()((((((()()))(())(()(())...

correct output
((()((((((()()))(())(()(()))((...

user output
((()((((((()()))(())(()(()))((...

Test 28

Verdict:

input
(()))((((((())(((()))))(())())...

correct output
(((())((()()(((((())()))())))(...

user output
(())

Test 29

Verdict: ACCEPTED

input
())))))))(((((((((())))(()))))...

correct output
(((((((((())))(())))))((((((()...

user output
(((((((((())))(())))))((((((()...

Test 30

Verdict: ACCEPTED

input
))))))))))))))))))))))))))))))...

correct output
-1

user output
-1

Test 31

Verdict: ACCEPTED

input
())(())(()()()(()()()))((())((...

correct output
(())(()()()(()()()))((())(((((...

user output
(())(()()()(()()()))((())(((((...

Test 32

Verdict:

input
(((((((((()))))))))((((((((())...

correct output
((((((((()))))))))

user output
-1

Test 33

Verdict:

input
()(())()()()(((((())))(((()())...

correct output
((((())))(((()()))((())(())())...

user output
()(())()()()

Test 34

Verdict: ACCEPTED

input
()(())((()))(((())))((((()))))...

correct output
()(())((()))(((())))((((()))))...

user output
()(())((()))(((())))((((()))))...
Truncated

Test 35

Verdict: ACCEPTED

input
()(((((((()(((((((((()())())))...

correct output
()(((((((()(((((((((()())())))...

user output
()(((((((()(((((((((()())())))...

Test 36

Verdict:

input
((((((((((((())))))))))))))))(...

correct output
((((((((((((((()))))))))))))((...

user output
((((((((((((()))))))))))))

Test 37

Verdict: ACCEPTED

input
)))((()((((((()()))(())(()(())...

correct output
((()((((()(()((()(())()((()())...

user output
((()((((()(()((()(())()((()())...

Test 38

Verdict: ACCEPTED

input
(()))((((((())(((()))))(())())...

correct output
((((((())(((()))))(())())())((...

user output
((((((())(((()))))(())())())((...
Truncated

Test 39

Verdict: ACCEPTED

input
(()))))))))))))))(((((((((((((...

correct output
(((((((((((((((((()))))))((())...

user output
(((((((((((((((((()))))))((())...

Test 40

Verdict: ACCEPTED

input
))))))))))))))))))))))))))))))...

correct output
-1

user output
-1

Test 41

Verdict: ACCEPTED

input
())(())(()()()(()()()))((())((...

correct output
(())(()()()(()()()))((())(((((...

user output
(())(()()()(()()()))((())(((((...

Test 42

Verdict:

input
))))(((((((((((((())))))))))))...

correct output
((((((((((((()))))))))))))

user output
-1

Test 43

Verdict:

input
()(())()()()(((((())))(((()())...

correct output
()()(((()())(()(((()(()(()(()(...

user output
()(())()()()

Test 44

Verdict: ACCEPTED

input
()(())((()))(((())))((((()))))...

correct output
()(())((()))(((())))((((()))))...

user output
()(())((()))(((())))((((()))))...
Truncated

Test 45

Verdict: ACCEPTED

input
()(((((((()(((((((((()())())))...

correct output
()(((((((()(((((((((()())())))...

user output
()(((((((()(((((((((()())())))...

Test 46

Verdict: ACCEPTED

input
((((((((((((((((((((((((((((((...

correct output
((((((((((((((((((((((((((((((...

user output
((((((((((((((((((((((((((((((...
Truncated

Test 47

Verdict: ACCEPTED

input
)))((()((((((()()))(())(()(())...

correct output
(((())()((()))()())((((((()(()...

user output
(((())()((()))()())((((((()(()...
Truncated

Test 48

Verdict:

input
(()))((((((())(((()))))(())())...

correct output
((()))(()()((()()((((()()()(()...

user output
((((((())(((()))))(())())())((...
Truncated

Test 49

Verdict: ACCEPTED

input
(((((((())))))))))))))))))))))...

correct output
((((((((((((((((((((((((((((((...

user output
((((((((((((((((((((((((((((((...
Truncated

Test 50

Verdict: ACCEPTED

input
))))))))))))))))))))))))))))))...

correct output
-1

user output
-1

Test 51

Verdict:

input
())(())(()()()(()()()))((())((...

correct output
(((()((((((()(((((()(((()(((()...

user output
((()()))(((()(((((()()()))()()...
Truncated

Test 52

Verdict:

input
(((((((())))))))))))))))))))))...

correct output
((((((((((((((((((((((((((((((...

user output
(((((((())))))))

Test 53

Verdict: ACCEPTED

input
()(())()()()(((((())))(((()())...

correct output
()(())()()()(((((())))(((()())...

user output
()(())()()()(((((())))(((()())...
Truncated

Test 54

Verdict: ACCEPTED

input
()(())((()))(((())))((((()))))...

correct output
()(())((()))(((())))((((()))))...

user output
()(())((()))(((())))((((()))))...
Truncated

Test 55

Verdict: ACCEPTED

input
()(((((((()(((((((((()())())))...

correct output
(((())((())(())(((()(()()(()()...

user output
(((())((())(())(((()(()()(()()...
Truncated

Test 56

Verdict: ACCEPTED

input
((((((((((((((((((((((((((((((...

correct output
((((((((((((((((((((((((((((((...

user output
((((((((((((((((((((((((((((((...
Truncated

Test 57

Verdict:

input
)))((()((((((()()))(())(()(())...

correct output
(((()))(())(())(((((()())()(()...

user output
()()((((()))))((()(((((()))(()...
Truncated

Test 58

Verdict: ACCEPTED

input
(()))((((((())(((()))))(())())...

correct output
(()()(()((()(((()(((()()()()((...

user output
(()()(()((()(((()(((()()()()((...
Truncated

Test 59

Verdict: ACCEPTED

input
((((((((((((((((((((((((((((((...

correct output
((((((((((((((((((((((((((((((...

user output
((((((((((((((((((((((((((((((...
Truncated

Test 60

Verdict: ACCEPTED

input
))))))))))))))))))))))))))))))...

correct output
-1

user output
-1

Test 61

Verdict: ACCEPTED

input
())(())(()()()(()()()))((())((...

correct output
(()(()()()(()())(())((((((()((...

user output
(()(()()()(()())(())((((((()((...
Truncated

Test 62

Verdict:

input
))))))))))))))))))))))))))))))...

correct output
((((((((((((((((((((((((((((((...

user output
-1

Test 63

Verdict: ACCEPTED

input
()(())()()()(((((())))(((()())...

correct output
(()()((((())()()())())))((())(...

user output
(()()((((())()()())())))((())(...
Truncated

Test 64

Verdict: ACCEPTED

input
()(())((()))(((())))((((()))))...

correct output
()(())((()))(((())))((((()))))...

user output
()(())((()))(((())))((((()))))...
Truncated

Test 65

Verdict:

input
()(((((((()(((((((((()())())))...

correct output
()(((((()()))()))()(())(((()((...

user output
(((())((())(())(((()(()()(()()...
Truncated