Submission #666788

# Submission time Handle Problem Language Result Execution time Memory
666788 2022-11-29T17:23:19 Z ThegeekKnight16 Superpozicija (COCI22_superpozicija) C++17
0 / 110
1000 ms 1100 KB
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e5 + 10;
bool temResp = false;
int pos[MAXN][2];
int Marc[2*MAXN];
int atual = 0;
string s;
int resp = 0;

void bt(int id, int N)
{
    if (temResp) return;

    if (id == N+1)
    {
        int quant = 0;
        for (int i = 1; i <= 2*N; i++)
        {
            if (Marc[i] == 0) continue;
            quant += ((s[i-1] == '(') ? 1 : -1);
            if (quant < 0) return;
        }
        if (quant != 0) return;
        resp = atual;
        temResp = 1;
        return;
    }

    Marc[pos[id][0]] = 1;
    bt(id+1, N);
    Marc[pos[id][0]] = 0;
    atual += (1 << id);
    Marc[pos[id][1]] = 1;
    bt(id+1, N);
    atual -= (1 << id);
    Marc[pos[id][1]] = 0;
}

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int T;
    cin >> T;
    while (T--)
    {
        int N;
        cin >> N;
        cin >> s;
        for (int i = 1; i <= N; i++)
        {
            cin >> pos[i][0] >> pos[i][1];
        }
        bt(1, N);
        if (!temResp) cout << "-1" << '\n';
        else
        {
            for (int k = 1; k <= N; k++)
            {
                cout << ((resp >> k) & 1) << " ";
            }
            cout << '\n';
        }
        resp = 0; atual = 0; temResp = 0;
    }
}
# Verdict Execution time Memory Grader output
1 Incorrect 72 ms 1100 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1086 ms 340 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 72 ms 1100 KB Output isn't correct
2 Halted 0 ms 0 KB -