Submission #725036

#TimeUsernameProblemLanguageResultExecution timeMemory
725036piOOEAncient Machine (JOI21_ancient_machine)C++17
30 / 100
112 ms10000 KiB
#include "Anna.h"
#include <bits/stdc++.h>

using namespace std;

void Anna(int n, std::vector<char> s) {
    for (int i = 0; i < n; ++i) {
        Send(s[i] == 'Y');
    }
    for (int i = 0; i < n; ++i) {
        Send(s[i] == 'Z');
    }
}
#include "Bruno.h"
#include <bits/stdc++.h>

using namespace std;

void Bruno(int N, int L, std::vector<int> A) {
    vector<char> s(N, 'X');

    for (int i = 0; i < N; ++i) {
        if (A[i]) {
            s[i] = 'Y';
        }
    }
    for (int i = N; i < 2 * N; ++i) {
        if (A[i]) {
            s[i - N] = 'Z';
        }
    }

    vector<int> stk;
    int xy = 0;

    for (int i = 0; i < N; ++i) {
        if (s[i] == 'Y') {
            if (!stk.empty() && s[stk.back()] == 'X') {
                stk.push_back(i);
                xy += 1;
            } else {
                Remove(i);
            }
        } else if (s[i] == 'X') {
            if (stk.empty() || s[stk.back()] != 'X') {
                stk.push_back(i);
            } else {
                Remove(i);
            }
        } else {
            while (stk.size() > 1) {
                Remove(stk.back());
                stk.pop_back();
            }
            Remove(i);
            xy = 0;
        }
    }
    for (int x : stk) {
        Remove(x);
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...