Submission #419786

#TimeUsernameProblemLanguageResultExecution timeMemory
419786amoo_safarAncient Machine (JOI21_ancient_machine)C++17
69 / 100
89 ms9628 KiB
#include "Anna.h" #include <bits/stdc++.h> #define pb push_back using namespace std; typedef long long ll; const int bl = 76; const int Log = 53; ll fib[bl]; void Send(vector<int> seq){ while((int) seq.size() % bl != 0) seq.pb(0); ll cd = 0; for(int i = 0; i < (int) seq.size(); i += bl){ int j = i + bl - 1; while(i <= j){ if(seq[j] == 0){ j--; continue; } cd += fib[j - i]; j -= 2; } for(int c = 0; c < Log; c++){ Send(cd & 1); cd >>= 1; } } } void Anna(int _n, vector<char> S){ fib[0] = 1; fib[1] = 2; for(int i = 2; i < bl; i++) fib[i] = fib[i - 1] + fib[i - 2]; vector<int> V(_n, 0), seq; int fl = 0, fly = 1; for(int i = _n - 1; i >= 0; i--){ if(S[i] == 'Y') fly = 1; if(S[i] == 'Z' && fly == 1) V[i] = 1, fly = 0; } int i = 0; for(auto c : S){ if(fl == 0 && c == 'X'){ fl = 1; seq.pb(1); seq.pb(0); } else { seq.pb(fl ? V[i] : 0); } i ++; } // Send(seq); for(auto x : seq) Send(x); // for(auto x : seq) // cerr << x; // cerr << '\n'; }
#include "Bruno.h" #include <bits/stdc++.h> #define pb push_back using namespace std; typedef long long ll; const int bl = 76; const int Log = 53; ll fib2[bl]; void Bruno(int _n, int L, vector<int> B) { // vector<int> B; // for(int i = 0; i < L; i += bl){ // } // L = B.size(); for(int i = 0; i + 1 < L; i++) assert((B[i] == 0) || (B[i + 1] == 0)); int fl = 0; vector<int> A; for(int i = 0; i < L; i++){ if(B[i] == 0) A.pb(0); else { A.pb(1); if(!fl) i++; fl = 1; } } A.resize(_n, 0); L = _n; int cnt = 0; vector<int> mk(_n, 0); for (int i = 0; i < L; i++) { // cerr << "!" << A[i] << '\n'; if(A[i] == 1){ cnt ++; for(int j = i - 1; j >= 0; j--){ if(A[j] == 1) break; Remove(j); mk[j] = 1; } if(cnt != 1){ Remove(i); mk[i] = 1; }; } } for(int i = 0; i < _n; i++) if(!mk[i]) Remove(i); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...