Submission #1071113

#TimeUsernameProblemLanguageResultExecution timeMemory
1071113thinknoexitAncient Machine (JOI21_ancient_machine)C++17
0 / 100
48 ms10144 KiB
#include "Anna.h"
#include<bits/stdc++.h>
using namespace std;
using ll = long long;

namespace {
    int n;
}
void Anna(int N, vector<char> S) {
    n = N;
    for (int i = 0;i < n;i++) {
        int v = S[i] - 'X';
        Send(!!(v & 1));
        Send(!!(v & 2));
    }
}
#include "Bruno.h"
#include<bits/stdc++.h>
using namespace std;
using ll = long long;

namespace {
    int n;
    int a[100100];
}  // namespace
void play(int l, int r) {
    if (l > r) return;
    // find first x
    int x = -1;
    for (int i = l;i <= r;i++) {
        if (a[i] == 0) {
            x = i;
            break;
        }
    }
    int z = -1;
    // find last z
    for (int i = r;i >= l;i--) {
        if (a[i] == 2) {
            z = i;
            break;
        }
    }
    if (x == -1 || z == -1) {
        for (int i = l;i <= r;i++) Remove(i);
        return;
    }
    for (int i = l;i < x;i++) Remove(i);
    for (int i = z + 1;i <= r;i++) Remove(i);
    // X ..... Z
    // find first and last y
    int yl = -1, yr = -1;
    for (int i = x + 1;i < z;i++) {
        if (a[i] == 1) {
            yl = i;
            break;
        }
    }
    for (int i = z - 1;i > x;i--) {
        if (a[i] == 1) {
            yr = i;
            break;
        }
    }
    if (yl == -1 || yr == -1) {
        for (int i = x;i <= z;i++) Remove(i);
        return;
    }
    for (int i = x + 1;i < yl;i++) Remove(i);
    for (int i = yr + 1;i < z;i++) Remove(i);
    if (yl == yr) {
        Remove(yl);
        Remove(x), Remove(z);
        return;
    }
    play(yl + 1, yr - 1);
    Remove(yl), Remove(yr);
    Remove(x), Remove(z);
}
void Bruno(int N, int L, vector<int> A) {
    n = N;
    for (int i = 0;i < n;i++) {
        a[i] = A[2 * i] + 2 * A[2 * i + 1];
    }
    play(0, n - 1);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...