# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
931106 | 2024-02-21T08:47:17 Z | boris_mihov | Ancient Machine (JOI21_ancient_machine) | C++17 | 69 ms | 8540 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; bool shouldSend = false; for (int i = 0 ; i < N ; ++i) { if (!foundX && s[i] == 'X') { foundX = true; Send(1); shouldSend = false; } else if (foundX && s[i] == 'Z' && (shouldSend || i + 1 == N || s[i + 1] != 'Z')) { Send(1); shouldSend = true; } else { shouldSend = false; Send(0); } } }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 788 KB | Output is correct |
2 | Correct | 0 ms | 784 KB | Output is correct |
3 | Correct | 0 ms | 784 KB | Output is correct |
4 | Correct | 0 ms | 796 KB | Output is correct |
5 | Correct | 0 ms | 872 KB | Output is correct |
6 | Correct | 0 ms | 784 KB | Output is correct |
7 | Correct | 0 ms | 784 KB | Output is correct |
8 | Correct | 1 ms | 796 KB | Output is correct |
9 | Correct | 1 ms | 780 KB | Output is correct |
10 | Correct | 1 ms | 796 KB | Output is correct |
11 | Correct | 0 ms | 780 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Partially correct | 39 ms | 7916 KB | Partially correct |
2 | Partially correct | 39 ms | 8188 KB | Partially correct |
3 | Partially correct | 39 ms | 8340 KB | Partially correct |
4 | Partially correct | 41 ms | 8160 KB | Partially correct |
5 | Partially correct | 39 ms | 8320 KB | Partially correct |
6 | Partially correct | 45 ms | 8304 KB | Partially correct |
7 | Partially correct | 40 ms | 8524 KB | Partially correct |
8 | Partially correct | 40 ms | 8288 KB | Partially correct |
9 | Partially correct | 39 ms | 8312 KB | Partially correct |
10 | Partially correct | 40 ms | 8244 KB | Partially correct |
11 | Partially correct | 47 ms | 8540 KB | Partially correct |
12 | Partially correct | 40 ms | 8284 KB | Partially correct |
13 | Partially correct | 53 ms | 8156 KB | Partially correct |
14 | Partially correct | 69 ms | 8380 KB | Partially correct |
15 | Partially correct | 43 ms | 8296 KB | Partially correct |
16 | Partially correct | 44 ms | 8216 KB | Partially correct |
17 | Partially correct | 49 ms | 8160 KB | Partially correct |
18 | Partially correct | 47 ms | 8316 KB | Partially correct |
19 | Partially correct | 47 ms | 8372 KB | Partially correct |
20 | Partially correct | 43 ms | 8316 KB | Partially correct |
21 | Partially correct | 44 ms | 8256 KB | Partially correct |
22 | Partially correct | 52 ms | 8212 KB | Partially correct |
23 | Partially correct | 44 ms | 8256 KB | Partially correct |
24 | Partially correct | 41 ms | 8076 KB | Partially correct |
25 | Partially correct | 47 ms | 8120 KB | Partially correct |
26 | Partially correct | 48 ms | 8408 KB | Partially correct |
27 | Partially correct | 47 ms | 8536 KB | Partially correct |
28 | Partially correct | 45 ms | 8328 KB | Partially correct |
29 | Partially correct | 60 ms | 8388 KB | Partially correct |
30 | Partially correct | 48 ms | 8424 KB | Partially correct |
31 | Partially correct | 47 ms | 8260 KB | Partially correct |
32 | Partially correct | 46 ms | 8348 KB | Partially correct |
33 | Partially correct | 40 ms | 8112 KB | Partially correct |