Submission #1150256

#TimeUsernameProblemLanguageResultExecution timeMemory
1150256yeysoAncient Machine (JOI21_ancient_machine)C++20
0 / 100
74 ms13240 KiB
#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(), i});
                oo.pop();
                update = depth;
            }
        }
        if(z[i] == 3){
            update = 1000000;
            if(!oc.empty()){
                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
12
X X Y Z X Y Z Y Z 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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...