Submission #1199076

#TimeUsernameProblemLanguageResultExecution timeMemory
1199076mychecksedadAncient Machine (JOI21_ancient_machine)C++20
70 / 100
59 ms11064 KiB
#include "Anna.h"
/* Author : Mychecksdead  */
#include<bits/stdc++.h>
using namespace std;
#define ll long long int
#define MOD (1000000000+7)
#define MOD1 (998244353)
#define pb push_back
#define all(x) x.begin(), x.end()
#define en cout << '\n'
#define ff first
#define ss second
#define pii pair<int,int>
#define vi vector<int>
const int N = 2000+100, M = 1e5+10, K = 52, MX = 30;

namespace {

int variable_example = 0;

}

void Anna(int n, std::vector<char> S) {
  stack<pair<int, char>> st;
  vector<bool> A(n);

  for(int i = 0; i < n; ++i){
    if(st.empty() && S[i] == 'X'){
      A[i] = 1;
      st.push({i, S[i]});
    }else{
      if(st.empty()) continue;
      if(S[i] == 'Z') A[i] = 1;
    }
  }
  vi R;
  for(int i = 0; i < n; ++i){
    if(A[i]) R.pb(i);
  }
  if(R.empty()) return;

  for(int i = 0; i < n; ++i) Send(A[i]);
}
#include "Bruno.h"
/* Author : Mychecksdead  */
#include<bits/stdc++.h>
using namespace std;
#define ll long long int
#define MOD (1000000000+7)
#define MOD1 (998244353)
#define pb push_back
#define all(x) x.begin(), x.end()
#define en cout << '\n'
#define ff first
#define ss second
#define pii pair<int,int>
#define vi vector<int>
const int N = 2000+100, M = 1e5+10, K = 52, MX = 30;

namespace {

int variable_example = 0;

int FunctionExample(int P) { return 1 - P; }

}  // namespace

void Bruno(int n, int L, std::vector<int> A) {
  if(L == 0){
    for(int i = 1; i <= n; ++i){
      Remove(i-1);
    }
    return;
  }
  vi R, Z;
  set<int> s;
  for(int i = 0; i < n; ++i){
    if(A[i]){
      R.pb(i);
      s.insert(i);
    }else{
      if(R.empty()) Remove(i);
      else s.insert(i);
    }
  }
  int lst = R[0];
  for(int i = 1; i < R.size(); ++i){
    for(int j = R[i] - 1; j > lst; --j){
      Remove(j);
      s.erase(j);
    }
    s.erase(R[i]);
    Remove(R[i]);
    lst = R[i];
  }
  for(int x: s) Remove(x);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...