QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#682107#7894. Many Many HeadsmvecRE 0ms0kbC++141.7kb2024-10-27 13:57:202024-10-27 13:57:21

Judging History

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

  • [2024-10-27 13:57:21]
  • 评测
  • 测评结果:RE
  • 用时:0ms
  • 内存:0kb
  • [2024-10-27 13:57:20]
  • 提交

answer

#include <iostream>
#include <string>
#include <bitset>
#include <stack>

using namespace std;

struct seq
{
    int l, r, t;
};

bitset<1000010> bin_s;
seq seqs[500010];

int main()
{
    int t;
    cin >> t;
    while (t--)
    {
        int n;
        string s;
        cin >> s;
        n = s.size();
        for (int i = 0; i < n; i++)
        {
            if (s[i] == '(' || s[i] == ')')
                bin_s[i] = 0;
            else
                bin_s[i] = 1;
        }

        stack<char> ord;
        int index = 0;
        for (int i = 0; i < n; i++)
        {
            if (bin_s[i])
            {
                if (ord.size() && ord.top() == '[')
                    ord.pop();
                else
                    ord.push('[');

                if (ord.empty())
                {
                    seqs[index].r = i;
                    seqs[index++].t = 1;
                }
            }
            else
            {
                if (ord.size() && ord.top() == '(')
                    ord.pop();
                else
                    ord.push('(');

                if (ord.empty())
                {
                    seqs[index].r = i;
                    seqs[index++].t = 0;
                }
            }
        }
        seqs[0].l = 0;
        for (int i = 1; i < index; i++)
            seqs[i].l = seqs[i - 1].r + 1;

        int cnts[2] = {0, 0};
        for (int i = 0; i < index; i++)
            cnts[seqs[i].t]++;

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

    system("pause");
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 0
Dangerous Syscalls

input:

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

output:

Yes
No
Yes
No
Yes

result: