Submission #1117606

# Submission time Handle Problem Language Result Execution time Memory
1117606 2024-11-24T06:41:01 Z vjudge1 Match (CEOI16_match) C++17
0 / 100
1 ms 508 KB
#include <bits/stdc++.h>
using namespace std;

bool isValid(const string &str) {
  stack<char> s;
  // cout << endl;
  for (const char &c : str) {
    if (c == '(') {
      s.push(c);
      // cout << "Pushed " << c << '\n';
    } else {
      if (s.empty() or s.top() != '(') {
        return false;
      }
      s.pop();
    }
  }

  if (!s.empty()) {
    // cout << s.top() << "is left. " << '\n';
  }
  return s.empty();
}

int main() {

  ios_base::sync_with_stdio(false);
  cin.tie(nullptr);

  string s;
  vector<pair<size_t, size_t>> m;
  cin >> s;

  while (true) {
    size_t p1 = s.find_first_of('a');
    size_t p2 = s.find_last_of('a');
    m.push_back({p1, p2});
    if (p1 == p2) {
      if (p1 != string::npos) {
        cout << "-1\n";
        return 0;
      }
      break;
    }
    s[p1] = '(';
    s[p2] = ')';
  }

  while (true) {
    size_t p1 = s.find_first_of('b');
    size_t p2 = s.find_last_of('b');
    m.push_back({p1, p2});
    if (p1 == p2) {
      if (p1 != string::npos) {
        cout << "-1\n";
        return 0;
      }
      break;
    }
    s[p1] = '(';
    s[p2] = ')';
  }

  if (!isValid(s)) {
    cout << "-1\n";
    return 0;
  }

  for (const auto &[x, y] : m) {
    if (x != y - 1 and !isValid(s.substr(x + 1, y - x - 1))) {
      // cout << s.substr(x + 1, y - x - 1) << " is invalid.\n";
      cout << "-1\n";
      return 0;
    }
  }

  cout << s << '\n';
  return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 336 KB Output is correct
2 Incorrect 1 ms 508 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 336 KB Output is correct
2 Incorrect 1 ms 508 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 336 KB Output is correct
2 Incorrect 1 ms 508 KB Output isn't correct
3 Halted 0 ms 0 KB -