#include "Anna.h"
#include <vector>
using namespace std;
#include <bits/stdc++.h>
namespace {
//int variable_example = 0;
}
void Anna(int N, vector<char> S) {
for(int i = 0; i < S.size(); i ++){
if(S[i] == 'X'){
Send(0);
Send(0);
}
if(S[i] == 'Y'){
Send(0);
Send(1);
}
if(S[i] == 'Z'){
Send(1);
Send(1);
}
}
}
/*
g++ -std=gnu++17 -O2 -fsigned-char -o grader grader.cpp ancientmachine.cpp Bruno.cpp
*/
#include "Bruno.h"
#include <vector>
using namespace std;
#include <bits/stdc++.h>
namespace {
int variable_example = 0;
int FunctionExample(int P) { return 1 - P; }
} // namespace
void Bruno(int N, int L, vector<int> A) {
vector<int> z;
for(int i = 0; i < L; i += 2) {
if(A[i] == 0){
if(A[i+1] == 0){
z.push_back(1);
}
if(A[i+1] == 1){
z.push_back(2);
}
}
if(A[i] == 1){
z.push_back(3);
}
}
stack<int> oo;
stack<vector<int>> oc;
vector<vector<int>> triplets;
vector<int> toremove;
int depth = 0;
int update = 0;
for(int i = 0; i < z.size(); i ++){
if(z[i] == 1){
oo.push(i);
depth += 2;
update = depth - 1;
}
if(z[i] == 2){
update = 1000000;
if(!oo.empty()){
oc.push({oo.top(), depth});
oo.pop();
update = depth;
}
}
if(z[i] == 3){
update = 1000000;
if(!oc.empty()){
update = oc.top()[1] - 1;
oc.pop();
//update = depth - 1;
depth -= 2;
}
}
toremove.push_back(update);
}
vector<vector<int>> updates;
for(int i = 0; i < toremove.size(); i ++){
//cout << toremove[i] << " ";
vector<int> temp = {toremove[i], i};
updates.push_back(temp);
}
sort(updates.begin(), updates.end());
reverse(updates.begin(), updates.end());
for(int i = 0; i < updates.size(); i ++){
Remove(updates[i][1]);
}
}
/*
g++ -std=gnu++17 -O2 -fsigned-char -o grader grader.cpp ancientmachine.cpp Bruno.cpp
8
X Y X Z Y X Y Z
48
X X Y Y Z Z Y X Y X Z Y X X Y Y Z Z Y X Y X Z Y X X Y Y Z Z Y X Y X Z Y X X Y Y Z Z Y X Y X Z Y
3
X X X
3
Y Y Y
3
Z Z Z
3
X Y Z
15
Y X Z Z X Y X Z Y Z X Y X Y Z
20
X X Y Y Z Z X Y Z X Y Z X X Y Z X Y Z X
25
Z Y X X Y Z Z Y X X Z Y X Y Z X Z Y X X Y Z Y X Z
30
X Y Z X Y Z X X Y Z Z Y X X Z Y X Y Z X Y Z X X Y Z X Y Z Z
40
Z Z X X Y Y Z X Y Z X X Y Z X Y Z X X Y Z X Y Z Z Y X X Z Y X Y Z X Y Z X Y X X
50
X Y Z Z Y X X Z Y X Y Z X X Y Z X Y Z X Y Z Z Y X X Z Y X Y Z X Y Z X X Y Z X Y Z Z X Y X X Y Z Y Z
60
Y X Z Z X Y X Z Y Z X Y X Y Z X Y Z X X Y Z X Y Z Z Y X X Z Y X Y Z X Y Z X X Y Z X Y Z Z X Y X X Y Z X Y Z Z X Y Z Y X
75
X X Y Z X Y Z X X Y Z Z Y X X Z Y X Y Z X Y Z X X Y Z X Y Z Z Y X X Z Y X Y Z X Y Z X X Y Z X Y Z Z X Y X X Y Z X Y Z Z X Y Z Y X Z X Y Z X X Y Z Z Y X
45
Z Z Z X X X Y Y Y Z Z Z X X X Y Y Y Z Z Z X X X Y Y Y Z Z Z X X X Y Y Y
*/
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |