Submission #1140690

#TimeUsernameProblemLanguageResultExecution timeMemory
1140690Math4Life2020Ancient Machine (JOI21_ancient_machine)C++20
70 / 100
43 ms6436 KiB
#include "Anna.h"
#include <bits/stdc++.h>
using namespace std;
using ll = int; using pii = pair<ll,ll>;
void Anna(int N, vector<char> S) {
    bool xfnd = 0;
    vector<ll> vsend;
    for (ll i=0;i<N;i++) {
        if (S[i]=='X' && !xfnd) {
            xfnd = 1;
            vsend.push_back(1);
            vsend.push_back(0);
        } else if (xfnd && S[i]=='Z' && (i==(N-1)||(S[i+1]!='Z'))) {
            vsend.push_back(1);
        } else {
            vsend.push_back(0);
        }
    }
    for (ll x=0;x<N;x++) {
      Send(vsend[x]);
    }
}
#include <bits/stdc++.h>
using namespace std;
using ll = int; using pii = pair<ll,ll>;
#include "Bruno.h"

vector<ll> wipe1(vector<ll> v0, ll N) {
  vector<ll> v1;
  bool f1 = 0;
  for (ll i=0;i<(v0.size());i++) {
    v1.push_back(v0[i]);
    if (v0[i]==1 && f1==0) {
      f1 = 1;
      i++;
    }
  }
  while (v1.size()<N) {
    v1.push_back(1);
  }
  return v1;
}

void Bruno(int N, int L, vector<int> A) {
    ll cx = -1;
    stack<ll> s0;
    A = wipe1(A,100000);
    for (ll i=0;i<N;i++) {
        if (A[i]==1) {
            if (cx==-1) {
                cx = i;
            } else {
                while (!s0.empty()) {
                    Remove((int)s0.top()); s0.pop();
                }
                Remove(i);
            }
        } else {
            if (cx==-1) {
                Remove(i);
            } else {
                s0.push(i);
            }
        }
    }
    while (!s0.empty()) {
        Remove((int)s0.top()); s0.pop();
    }
    if (cx != -1) {
        Remove(cx);
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...