#include "Anna.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define MAX 101010
#define B1 63
#define B2 44
namespace {
vector<int> arr;
vector<ll> fibo = { 1, 2 };
vector<vector<int>> bukkit;
}
void Anna(int N, std::vector<char> S) {
arr.resize(N);
int i, c;
c = 0;
fibo.resize(B1);
S.push_back(' ');
for (i = 2; i < B1; i++) fibo[i] = fibo[i - 1] + fibo[i - 2];
int start = N;
for (i = 0; i < N; i++) {
if (!c && S[i] == 'X') c = 1, start = i;
else if (c && S[i] == 'Z' && S[i + 1] != 'Z') arr[i] = 1;
}
bukkit.push_back(vector<int>());
for (i = 0; i < N; i++) {
if (bukkit.back().size() == B1) bukkit.push_back(vector<int>());
bukkit.back().push_back(arr[i]);
}
bukkit.back().resize(B1);
int bs = bukkit.size();
ll res = 0;
for (i = 0; i < bs; i++) {
int j;
res = 0;
for (j = 0; j < B1; j++) if (bukkit[i][j]) res += fibo[j];
for (j = 0; j < B2; j++) {
if (res & (1ll << (ll)j)) Send(1);
else Send(0);
}
}
for (i = 0; i < 17; i++) Send((bool)((1 << i) & start));
}
#include "Bruno.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
namespace {
const int B1 = 63;
const int B2 = 44;
vector<ll> fibo = { 1, 2 };
} // namespace
void Bruno(int N, int L, std::vector<int> A) {
vector<int> sv;
int i;
for (i = 0; i < 17; i++) sv.push_back(A.back()), A.pop_back();
reverse(sv.begin(), sv.end());
int start = 0;
for (i = 0; i < 17; i++) start += sv[i] * (1 << i);
L = A.size();
if (start == N) start = -1;
int K = L / B2;
fibo.resize(B1);
for (i = 2; i < B1; i++) fibo[i] = fibo[i - 1] + fibo[i - 2];
vector<int> arr;
for (i = 0; i < K; i++) {
ll res = 0;
ll j;
for (j = 0; j < B2; j++) res += (ll)A[(ll)i * (ll)B2 + j] << (ll)j;
vector<int> v;
for (j = B1 - 1; j >= 0; j--) {
if (res >= fibo[j]) res -= fibo[j], v.push_back(1);
else v.push_back(0);
}
reverse(v.begin(), v.end());
for (auto x : v) arr.push_back(x);
}
arr.resize(N);
vector<int> ones;
if (start == -1) {
for (i = 0; i < N; i++) Remove(i);
return;
}
for (i = 0; i < N; i++) if (arr[i]) ones.push_back(i);
if (ones.empty()) {
for (i = 0; i < N; i++) Remove(i);
return;
}
for (i = 0; i < start; i++) Remove(i);
int pv = start;
for (auto v : ones) {
for (i = v - 1; i > pv; i--) Remove(i);
Remove(v);
pv = v;
}
Remove(start);
for (i = pv + 1; i < N; i++) Remove(i);
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
508 KB |
Output is correct |
2 |
Correct |
0 ms |
508 KB |
Output is correct |
3 |
Correct |
0 ms |
516 KB |
Output is correct |
4 |
Correct |
0 ms |
508 KB |
Output is correct |
5 |
Correct |
0 ms |
516 KB |
Output is correct |
6 |
Correct |
0 ms |
508 KB |
Output is correct |
7 |
Correct |
1 ms |
508 KB |
Output is correct |
8 |
Correct |
0 ms |
508 KB |
Output is correct |
9 |
Correct |
0 ms |
516 KB |
Output is correct |
10 |
Correct |
0 ms |
516 KB |
Output is correct |
11 |
Correct |
0 ms |
504 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
55 ms |
8376 KB |
Output is correct |
2 |
Correct |
52 ms |
8640 KB |
Output is correct |
3 |
Correct |
54 ms |
8500 KB |
Output is correct |
4 |
Correct |
54 ms |
8448 KB |
Output is correct |
5 |
Correct |
50 ms |
8572 KB |
Output is correct |
6 |
Correct |
61 ms |
8496 KB |
Output is correct |
7 |
Correct |
56 ms |
8532 KB |
Output is correct |
8 |
Correct |
60 ms |
8496 KB |
Output is correct |
9 |
Correct |
51 ms |
8508 KB |
Output is correct |
10 |
Correct |
49 ms |
8568 KB |
Output is correct |
11 |
Correct |
66 ms |
8472 KB |
Output is correct |
12 |
Correct |
68 ms |
8388 KB |
Output is correct |
13 |
Correct |
55 ms |
8368 KB |
Output is correct |
14 |
Correct |
57 ms |
8616 KB |
Output is correct |
15 |
Correct |
57 ms |
8560 KB |
Output is correct |
16 |
Correct |
54 ms |
8648 KB |
Output is correct |
17 |
Correct |
63 ms |
8460 KB |
Output is correct |
18 |
Correct |
61 ms |
8280 KB |
Output is correct |
19 |
Correct |
54 ms |
8496 KB |
Output is correct |
20 |
Correct |
48 ms |
8548 KB |
Output is correct |
21 |
Correct |
52 ms |
8492 KB |
Output is correct |
22 |
Correct |
62 ms |
8408 KB |
Output is correct |
23 |
Correct |
52 ms |
8384 KB |
Output is correct |
24 |
Correct |
62 ms |
8436 KB |
Output is correct |
25 |
Correct |
62 ms |
8440 KB |
Output is correct |
26 |
Correct |
57 ms |
8420 KB |
Output is correct |
27 |
Correct |
62 ms |
8440 KB |
Output is correct |
28 |
Correct |
56 ms |
8444 KB |
Output is correct |
29 |
Correct |
54 ms |
8472 KB |
Output is correct |
30 |
Correct |
54 ms |
8336 KB |
Output is correct |
31 |
Correct |
64 ms |
8416 KB |
Output is correct |
32 |
Correct |
59 ms |
8408 KB |
Output is correct |
33 |
Correct |
49 ms |
8548 KB |
Output is correct |