QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#694061#7894. Many Many Headstest_algth#WA 0ms3796kbC++141.5kb2024-10-31 17:11:462024-10-31 17:11:48

Judging History

你现在查看的是最新测评结果

  • [2024-10-31 17:11:48]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:3796kb
  • [2024-10-31 17:11:46]
  • 提交

answer

#include <bits/stdc++.h>

const int MAXN = 1.01E5;
char A[MAXN];

int main() {
  std::ios::sync_with_stdio(false);
  std::cin.tie(nullptr);
  std::cout.tie(nullptr);

  int testCase = 1;
  std::cin >> testCase;
  while (testCase--) {
    int N;
    std::cin >> (A + 1);
    N = strlen(A + 1);

    int cnts[2] = {0, 0};
    bool flag = true;

    std::vector <int> pos;
    pos.push_back(0);
    for (int i = 1; i <= N; ++i) {
      if (A[i] == '(' || A[i] == ')') {
        cnts[1] = 0;
        ++cnts[0];
      } else {
        cnts[0] = 0;
        ++cnts[1];
      }

      if (cnts[0] == 2 || cnts[1] == 2) {
        pos.push_back(i);
      }

      if (cnts[0] > 2 || cnts[1] > 2) {
        flag = false;
      }
    }

    if (flag == false) {
      std::cout << "No\n";
    } else {
      int pre = 0;
      cnts[0] = cnts[1] = 0;

      flag = false;
      for (int i = 1; i < pos.size(); ++i) {
        int sum = pos[i] - pos[i - 1] - 2 - pre;
        pre = pos[i] - pos[i - 1] - 2;
        // printf("(%d)\n", pos[i]);
        int j = i;
        while (j + 1 < pos.size() && pos[j + 1] == pos[j] + 2) ++j;
        if (j > i + 1) {
          flag = true;
          break;
        }

        if (!sum) {
          if (A[pos[i]] == '(' || A[pos[i]] == ')') ++cnts[0];
          else ++cnts[1];
        }
      }

      if (cnts[1] > 1 || cnts[0] > 1 || flag) {
        std::cout << "No\n";
      } else {
        std::cout << "Yes\n";
      }
    }
  }

  return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3796kb

input:

6
))
((()
[()]
()[()]()
([()])
([])([])

output:

Yes
No
Yes
No
Yes
No

result:

ok 6 token(s): yes count is 3, no count is 3

Test #2:

score: -100
Wrong Answer
time: 0ms
memory: 3612kb

input:

2
(([([[([
]]))])]])]

output:

Yes
Yes

result:

wrong answer expected NO, found YES [2nd token]