# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
931095 | 2024-02-21T08:28:05 Z | boris_mihov | Ancient Machine (JOI21_ancient_machine) | C++17 | 34 ms | 7812 KB |
#include "Anna.h" #include <algorithm> #include <iostream> #include <cassert> #include <vector> typedef long long llong; const int BUCKET_SIZE = 73; const int MYLOG = 51; llong fib[BUCKET_SIZE + 5]; struct FibbonacciConverter { std::string getString(std::string s) { while (s.size() % BUCKET_SIZE != 0) { s += '0'; } std::string res; for (int i = 0 ; i < s.size() ; i += BUCKET_SIZE) { llong currNum = 0; for (int j = i ; j < i + BUCKET_SIZE ; ++j) { if (s[j] == '1') currNum += fib[j - i]; } assert(currNum < (1LL << MYLOG)); for (int log = MYLOG - 1 ; log >= 0 ; --log) { if (currNum & (1LL << log)) { res += '1'; } else { res += '0'; } } } return res; } std::string fromString(std::string s) { assert(s.size() % MYLOG == 0); std::string res; for (int i = 0 ; i < s.size() ; i += MYLOG) { llong currNum = 0; for (int j = i ; j < i + MYLOG ; ++j) { currNum *= 2; if (s[j]) { currNum++; } } std::string toAdd; for (int pos = BUCKET_SIZE ; pos > 0 ; --pos) { if (currNum >= fib[pos - 1]) { toAdd += '1'; currNum -= fib[pos - 1]; } else { toAdd += '0'; } } std::reverse(toAdd.begin(), toAdd.end()); res += toAdd; } return res; } }; void Anna(int N, std::vector <char> s) { fib[0] = 1; fib[1] = 2; for (int i = 2 ; i < BUCKET_SIZE + 5 ; ++i) { fib[i] = fib[i - 1] + fib[i - 2]; } bool foundX = false; std::string toConvert; for (int i = 0 ; i < N ; ++i) { if (!foundX && s[i] == 'X') { foundX = true; // toConvert += '1'; Send(1); i++; } else if (foundX && s[i] == 'Z') { Send(1); i++; } else { Send(0); } } }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 784 KB | Wrong Answer [6] |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 34 ms | 7812 KB | Wrong Answer [6] |
2 | Halted | 0 ms | 0 KB | - |