Submission #398193

#TimeUsernameProblemLanguageResultExecution timeMemory
3981934fectaAncient Machine (JOI21_ancient_machine)C++17
0 / 100
80 ms8728 KiB
#include "Anna.h" #include <bits/stdc++.h> using namespace std; #define ll long long #define ld long double #define pii pair<int, int> #define f first #define s second #define boost() cin.tie(0), cin.sync_with_stdio(0) void Anna(int N, vector<char> S) { for (char c : S) { if (c == 'X') Send(0); else if (c == 'Y') Send(1), Send(0); else Send(1), Send(1); } }
#include "Bruno.h" #include <bits/stdc++.h> using namespace std; #define ll long long #define ld long double #define pii pair<int, int> #define f first #define s second #define boost() cin.tie(0), cin.sync_with_stdio(0) const int MN = 200005; int n; char a[MN]; void Bruno(int N, int L, vector<int> A) { n = N; int id = 0; for (int i = 0; i < N; i++) { if (!A[id++]) a[i] = 'X'; else if (!A[id++]) a[i] = 'Y'; else a[i] = 'Z'; } stack<pii> s; //type, index for (int i = 0; i < n; i++) { if (a[i] == 'X') s.push({0, i}); else if (a[i] == 'Y') { while (s.size() && s.top().f) Remove(s.top().s), s.pop(); if (s.empty()) Remove(i); else s.push({1, i}); } else { while (s.size() && s.top().f != 1) Remove(s.top().s), s.pop(); if (s.size()) Remove(s.top().s), s.pop(), Remove(s.top().s), s.pop(); Remove(i); } } while (s.size()) Remove(s.top().s), s.pop(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...