QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#497324 | #3098. Ancient Machine | bykem | 5 | 42ms | 9908kb | C++20 | 1.9kb | 2024-07-28 23:13:04 | 2024-07-28 23:13:04 |
Judging History
Anna
#include "Anna.h"
using namespace std;
using ull = unsigned long long;
const int kS = 90, kB = 63;
ull af[kS];
auto init_af = []() {
af[0] = 1, af[1] = 2;
for (int i = 2; i < kS; ++i) {
af[i] = af[i - 1] + af[i - 2];
}
return 0;
}();
void Anna(int n, vector<char> s) {
s.push_back('X');
vector<int> v;
bool fx = 1;
for (int i = 0; i < n; ++i) {
char c = s[i];
if (fx) {
v.push_back(c == 'X');
fx &= c != 'X';
} else {
v.push_back(c == 'Z' && s[i + 1] != 'Z');
}
}
for (; v.size() % kS; v.push_back(0)) {
}
for (int i = 0; i < n; i += kS) {
ull fs = 0;
for (int j = 0; j < kS; ++j) {
fs += v[i + j] * af[kS - 1 - j];
}
for (int j = 0; j < kB; ++j) {
Send(fs >> j & 1);
}
}
}
Bruno
#include "Bruno.h"
using namespace std;
using ull = unsigned long long;
const int kS = 90, kB = 63;
ull bf[kS];
auto init_bf = []() {
bf[0] = 1, bf[1] = 2;
for (int i = 2; i < kS; ++i) {
bf[i] = bf[i - 1] + bf[i - 2];
}
return 0;
}();
void remove(int n, int d) {
if (d < n) {
Remove(d);
}
}
void Bruno(int n, int la, vector<int> a) {
bool fx = 1;
vector<int> s;
for (int i = 0, ri = 0; i < la; i += kB, ri += kS) {
ull fs = 0;
for (int j = 0; j < kB; ++j) {
fs |= (ull)a[i + j] << j;
}
for (int j = kS - 1; j >= 0; --j) {
int rj = ri + kS - 1 - j;
bool v = fs >= bf[j];
fs -= v * bf[j];
if (fx) {
if (!v) {
remove(n, rj);
} else {
s.push_back(rj);
fx = 0;
}
} else {
if (v) {
for (; s.size() > 1; remove(n, s.back()), s.pop_back()) {
}
remove(n, rj);
} else {
s.push_back(rj);
}
}
}
}
for (int i : s) {
remove(n, i);
}
}
Details
Tip: Click on the bar to expand more detailed information
Subtask #1:
score: 5
Accepted
Test #1:
score: 100
Accepted
time: 0ms
memory: 4060kb
input:
18 Y X Y Z X Z X X Z Z Y Y Z Y Y Z X X
output:
63 110000110101101001011110000011110100100011010001010101000111110
input:
63 110000110101101001011110000011110100100011010001010101000111110
output:
0 63 3
result:
ok n = 18, D = 63, L = 3
Test #2:
score: 100
Accepted
time: 2ms
memory: 3880kb
input:
18 X Z X Y Y Y X Z X Y Z Z Z Z Y Z Z Y
output:
63 111010111011110001111100110110000111001011011010101000001101011
input:
63 111010111011110001111100110110000111001011011010101000001101011
output:
0 63 3
result:
ok n = 18, D = 63, L = 3
Test #3:
score: 100
Accepted
time: 0ms
memory: 3764kb
input:
18 Y Z Z Y Z X X Z Y Y Z Z Z Y X X Z Y
output:
63 000111011110001100101001110001101101000111101111100100100001000
input:
63 000111011110001100101001110001101101000111101111100100100001000
output:
0 63 2
result:
ok n = 18, D = 63, L = 2
Test #4:
score: 100
Accepted
time: 0ms
memory: 3784kb
input:
18 X Z Z X Z X X Z X Y Y X X Z X Y Z X
output:
63 011100101001011100001100110011000010010010100001000011001010011
input:
63 011100101001011100001100110011000010010010100001000011001010011
output:
0 63 2
result:
ok n = 18, D = 63, L = 2
Test #5:
score: 100
Accepted
time: 0ms
memory: 3780kb
input:
18 X Y X Y Y X X Z Y Z Y X Z Y Y X X Z
output:
63 010100011100110001000001010101100101101100000111111011111100001
input:
63 010100011100110001000001010101100101101100000111111011111100001
output:
0 63 5
result:
ok n = 18, D = 63, L = 5
Test #6:
score: 100
Accepted
time: 0ms
memory: 4040kb
input:
18 X X Y Z X Y Y Y X X Z X X X Z X Z Z
output:
63 000111110001110110101110110011010101100001111111011100010000101
input:
63 000111110001110110101110110011010101100001111111011100010000101
output:
0 63 2
result:
ok n = 18, D = 63, L = 2
Test #7:
score: 100
Accepted
time: 0ms
memory: 3736kb
input:
3 X Y Z
output:
63 010010000110110001010101011110110011000110001001111110101001101
input:
63 010010000110110001010101011110110011000110001001111110101001101
output:
0 63 1
result:
ok n = 3, D = 63, L = 1
Test #8:
score: 100
Accepted
time: 0ms
memory: 3792kb
input:
3 Z Y X
output:
63 101100110111101111101110011110001001101110000011110011010001100
input:
63 101100110111101111101110011110001001101110000011110011010001100
output:
0 63 0
result:
ok n = 3, D = 63, L = 0
Test #9:
score: 100
Accepted
time: 0ms
memory: 3784kb
input:
18 X X X X X X X X X X X X X X X X X X
output:
63 101000101110101001001100000000111100110111110011110101010000001
input:
63 101000101110101001001100000000111100110111110011110101010000001
output:
0 63 0
result:
ok n = 18, D = 63, L = 0
Test #10:
score: 100
Accepted
time: 0ms
memory: 3808kb
input:
18 Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y
output:
63 000000000000000000000000000000000000000000000000000000000000000
input:
63 000000000000000000000000000000000000000000000000000000000000000
output:
0 63 0
result:
ok n = 18, D = 63, L = 0
Test #11:
score: 100
Accepted
time: 0ms
memory: 3880kb
input:
18 Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z
output:
63 000000000000000000000000000000000000000000000000000000000000000
input:
63 000000000000000000000000000000000000000000000000000000000000000
output:
0 63 0
result:
ok n = 18, D = 63, L = 0
Subtask #2:
score: 0
Wrong Answer
Test #12:
score: 98
Acceptable Answer
time: 34ms
memory: 9760kb
input:
100000 X Z X Z Z X Y Z Y X Y X Z Z Z Y X Z Y X Y Y X Y Y Y Z Y Z Z Y X X Y X X Y Y X X X Z Y Y Y Z Z Z Z Y X Y Y Z Z Z X Y Z X X X X Y X Y X X Z X Z Z Z X Y X X X Z X Z X X X Y Y Y Y Z X X Y Z Y Y X Z X Z Z Z Z Z Y Z Y X Y Y Y Y X Z Z Y Z Z Y Z Z Z X Z Z X X Z Z Z Z X X Z Y Y Z Y Y Z Z Y Y Z Y Z Y Z...
output:
70056 101100001101110100000100111001010000110111000111101001100010111010001010100101001110111101101011110001000100011101010010011100101110001111111100010011100001010100111011011001111010110100000101011111011101000001001111000110101111110110101100101111110100010111000110101001011010111101101010000101...
input:
70056 101100001101110100000100111001010000110111000111101001100010111010001010100101001110111101101011110001000100011101010010011100101110001111111100010011100001010100111011011001111010110100000101011111011101000001001111000110101111110110101100101111110100010111000110101001011010111101101010000101...
output:
0 70056 22133
result:
points 0.98947368420 n = 100000, D = 70056, L = 22133
Test #13:
score: 98
Acceptable Answer
time: 40ms
memory: 9688kb
input:
100000 Z X X Y Z Z Z Y Z X Y Y Z X X Z Z Z Y Z X Y X Y X Z Y X Z X Y X Y Y Z X X Z X Z Y Z Y Z Z Z Y X Z X Z Y Y Y Z Y Z Y Z X Y X Z Z X Y X Y Z X Y Z Y X Y X X Z Z X Z X X Z X X X X Y X X Z Z X Y Y Y Y X Y X X Z Y Z Y Y Z X X Z Z Y Y X Z Y Y X Y Z Y Z Y Y Z Z X Z Y Z Z Z X Y Z Z X X X X Z Y X Y Y Z...
output:
70056 101100101110000101010110001110011111100010010000101101001011010100001001100001110111111100010100011100100111100000000001001100101000101010111111111011100000100110000110011100101111111100110101011000001001110000100000101000011111011100111101111111001101001011011000001100110011110011111001111111...
input:
70056 101100101110000101010110001110011111100010010000101101001011010100001001100001110111111100010100011100100111100000000001001100101000101010111111111011100000100110000110011100101111111100110101011000001001110000100000101000011111011100111101111111001101001011011000001100110011110011111001111111...
output:
0 70056 22275
result:
points 0.98947368420 n = 100000, D = 70056, L = 22275
Test #14:
score: 98
Acceptable Answer
time: 32ms
memory: 9724kb
input:
100000 X Z Y X Z X X Z Y Z Y Y Y Z Y Z X X Z X X Y Z X X Z Y X Y Y Z X Z Y Z X X X X Z X Y X Z X Z X X X Y X Y Z Z Z Z Z Z Z Z Y X Y Z X Z Y Z Y X Y Z Y Z Y X Y Z X Z Z Z Y X Y Y X X X X Y X X Y Z Z X Z Y Z Z Y X Y X Z Z Z X X Z X Z Z Z Z Y X Z Z X X Z Z Y X X Y Y Y X Y Y Y X X Y Y Z X Z Y Y X X Y Z...
output:
70056 000000001000110000010101111010011111100101100101011010101010111100111101101010010110100100101110010100010000001110110010001000010100110001010010110100111110001110010000000111101011010001100101110000011011000000101010011001001110100000001011110011001000101100111010101111010001010100011111100001...
input:
70056 000000001000110000010101111010011111100101100101011010101010111100111101101010010110100100101110010100010000001110110010001000010100110001010010110100111110001110010000000111101011010001100101110000011011000000101010011001001110100000001011110011001000101100111010101111010001010100011111100001...
output:
0 70056 22177
result:
points 0.98947368420 n = 100000, D = 70056, L = 22177
Test #15:
score: 98
Acceptable Answer
time: 32ms
memory: 9700kb
input:
100000 Y Z X X X Y Y Y Z Y Z X Z X X Z X X Z X X Z Z X Z Z Z Z X X X Z X Y X X Y X Y X Z Y X Z Y Z Y Y Y Y Z Y Z X X X X Y Y Z Y X Y X Y Y Z X Z Z Y Z Z Y X X Z Y Y Y Z Y X Y Y Y Y Z Z Y Z X X Y X Z Z Y X Y Y X Z Y X Y Y Y Z Y X X Y X Z X Y X X X Y Y Y Y Y X Z Z Y Z X Y Y X X X X Z Z X X X Y Z X Z X...
output:
70056 101101000011000101001101110011001100101000010101101110110101100101100101110000000011011111001100110011000000111001111100010001110110110000111100010010010101010100100000001100100010101111010101001010000000110001110010110111100001111000001011100110110000001100011000001010010110011000110110111101...
input:
70056 101101000011000101001101110011001100101000010101101110110101100101100101110000000011011111001100110011000000111001111100010001110110110000111100010010010101010100100000001100100010101111010101001010000000110001110010110111100001111000001011100110110000001100011000001010010110011000110110111101...
output:
0 70056 22192
result:
points 0.98947368420 n = 100000, D = 70056, L = 22192
Test #16:
score: 98
Acceptable Answer
time: 42ms
memory: 9720kb
input:
100000 Z Z X Y Z Z Z Z Y X Y Y Z X Y Y Y Z X X Z X X X Z Y X X Z Y X X Y Y Z Y Y Z Z Y Z Z Y Y X X Z X Y Y Z Z Y Z X X Y X Z X X Y Z Z Y X X Z Z Z Y Z Z X X Z X Z Z Z Y X X Z Z X X X Z X X Z Y X X Y X Y Z X Y Z Z X X X Y Y Z Z Z Z X X X X Y X Z X Z X X Z X Y X Z Z X Y X X Z Z X X Y X Z Z Z Z X Y Y Y...
output:
70056 001001010101001110010100010011101111100010110010111001001101100011101100000111010011111001101110011000111101001001100011001010011111010010000100011011100111111110111010010011100011100000010110101001000011001110010010000100001001000101110110010101111000100111001110100110101101110111010110111010...
input:
70056 001001010101001110010100010011101111100010110010111001001101100011101100000111010011111001101110011000111101001001100011001010011111010010000100011011100111111110111010010011100011100000010110101001000011001110010010000100001001000101110110010101111000100111001110100110101101110111010110111010...
output:
0 70056 22119
result:
points 0.98947368420 n = 100000, D = 70056, L = 22119
Test #17:
score: 98
Acceptable Answer
time: 34ms
memory: 9724kb
input:
100000 X X Y Y Y Y X Z Z X Y Y X Y X Z Y Y Y Y X X Y X X Y Y X Z X Z Z Z Y Z Y Y Y X Y Y Z Y Z X Z Y Z Z X Z Z X Z Y Z Z Z Y Z X Y Y Y X Y Y Y X X X X X Z X Y X Z Y Y Z X Z Z X Y X X X Z Z Z X X X X Z Y X X Y Z X Z Z X X Y X Z Z Y X X X Y X X X X Z Y Z X X X Z X Z Z Y Y Y Z Y Y X Z Y Y X Y Y X Y X X...
output:
70056 010000011000000101111111101100111100101011000110000110000100001110011001101011100010111010010011101000001111001010111111101010101100101100100000100001011110100011011011111010101101101001010101100010001101011001111100100110111101111010111110101001011010110001111111101010101010011111011010000011...
input:
70056 010000011000000101111111101100111100101011000110000110000100001110011001101011100010111010010011101000001111001010111111101010101100101100100000100001011110100011011011111010101101101001010101100010001101011001111100100110111101111010111110101001011010110001111111101010101010011111011010000011...
output:
0 70056 22256
result:
points 0.98947368420 n = 100000, D = 70056, L = 22256
Test #18:
score: 98
Acceptable Answer
time: 32ms
memory: 9740kb
input:
100000 X Z Z X Z X Z Z X X X Z Z Y Y Z Y Y Z Z Y X X Y Y Z Y Y Y Y Y Z X Y X Y X Z Z X Y X Z Z Y Z Y Z X Z Y Y Y Y Z X X Y X X X X Y Y Z Z X Y X Y Z Y Y Y Z X Y Y X Z Y Y Z Z X Y Y Y Y Y Y X Z Y X Z X Y Y Z Z X Z Z X Z Z Z X X Y X Y Z Z X X Y X Z Z Z X X Y Z X Z Y Z Z X X X X X Z Y X Y Z X Z X Z Z X...
output:
70056 110001110101010101010011010001100010110111010101010100101010011100001001100001001000011111001010111110000010011110011001111100011011101010011001100010100000110001000001110011011010011100000101110110100010001101100101011110001011010000111010000010000101011010101011111001010110010011000100101011...
input:
70056 110001110101010101010011010001100010110111010101010100101010011100001001100001001000011111001010111110000010011110011001111100011011101010011001100010100000110001000001110011011010011100000101110110100010001101100101011110001011010000111010000010000101011010101011111001010110010011000100101011...
output:
0 70056 22071
result:
points 0.98947368420 n = 100000, D = 70056, L = 22071
Test #19:
score: 98
Acceptable Answer
time: 40ms
memory: 9708kb
input:
100000 X Z X Y Z Z X Y X X Y Y X Z Z X Z X X X Z Y Z X X X X Y Z Y Y X X Y Y Z Y Y Z X X X Y Z Y Z Z Y Z Y X Z Z Y X X Y Y Z Y X Z X X Y Z Y Z Z Z Z Z X Y Y X Y Y X Y Y Y Y X X Y Y X Y Z Y Y Y Y X X X X X X X Y X Y X Z Y Y Y X Z X Y X Y Z X Y Z Y X Y Y X X Y X X Z Y X X X Y Y Z Y Z X Y X Y Y Y X Z Z...
output:
70056 011110001010010101101111111110110001010010000110101010010111011001110001010110000011010010010110010110101011010101100000000000111101100001110100101100010011010001100110110010101101101110001001111011111000110110101011110110101100100110000100101010000101011000101100101110101111011101011110000110...
input:
70056 011110001010010101101111111110110001010010000110101010010111011001110001010110000011010010010110010110101011010101100000000000111101100001110100101100010011010001100110110010101101101110001001111011111000110110101011110110101100100110000100101010000101011000101100101110101111011101011110000110...
output:
0 70056 22257
result:
points 0.98947368420 n = 100000, D = 70056, L = 22257
Test #20:
score: 98
Acceptable Answer
time: 32ms
memory: 9908kb
input:
99997 X X Z X Z X Y Z Y X Y Z X X Y Y Z X Y Y X Z Z Y Y X X Z Y Z Y X Y X Y Y Y Y Z Z X Z X Z Z Z X X Y Z Z X X Y X X Y Z Y Z Z Z Z Y X Y Z Z X X X Z Z Z Y Z Z Y Y Y X Z Y X X Z Z Y Z Y Y Z Z Z X Z X X X Z Y Z X Z Y Y X X Z Y Y Z X Z Z X Z Z Z Z X X Z Y Z Y Y X Y Y Y Z X Y Y Y Y Z Y X Y X Y Z X X X ...
output:
70056 101001001010001001100110011100001011000000010110001001101010011100010000111001110001111110001001000110000000101100101100110100110101011111100110101011000000010000000111011111001110100110000000101100001001100100101010000010101000110101100010001001010101011010000100011101011000010111110011110100...
input:
70056 101001001010001001100110011100001011000000010110001001101010011100010000111001110001111110001001000110000000101100101100110100110101011111100110101011000000010000000111011111001110100110000000101100001001100100101010000010101000110101100010001001010101011010000100011101011000010111110011110100...
output:
0 70056 22040
result:
points 0.98947368420 n = 99997, D = 70056, L = 22040
Test #21:
score: 98
Acceptable Answer
time: 32ms
memory: 9740kb
input:
99996 X X Z Y X X Y Y X Y Z X X Y Z Z Z X Z Y Z Y Y Y Z Z Z X Z Z X Y X X X Z Y Y X X Y Y Z X Z Y X X X Y X X Z Z X Z Z Y Z X Z X Z Y Z Z X Y Z Z X Y X X Z Z X X Y Z Z X X X Z X Z X Z Y X X X X Z X Z Z Z X Z X Z Y X X Y Z Y Z Z X Y Y X X X X X Y Z Z Z Z Y Z Z Z Z Z Z Y X Y Y X Y X X X X Y Y Y Y X Z ...
output:
70056 110011010001010000010000110001011011000011101101100011111001101110111001011110011010000110011000011000010000101111100011101000100010101000000100011100110110010111001101111001010100100101010111010100011010100001010111111110010100110001011101100100001010010111101110011010000111010101111111010001...
input:
70056 110011010001010000010000110001011011000011101101100011111001101110111001011110011010000110011000011000010000101111100011101000100010101000000100011100110110010111001101111001010100100101010111010100011010100001010111111110010100110001011101100100001010010111101110011010000111010101111111010001...
output:
0 70056 22360
result:
points 0.98947368420 n = 99996, D = 70056, L = 22360
Test #22:
score: 98
Acceptable Answer
time: 16ms
memory: 9700kb
input:
99995 X Z X Y Y Y X X X Y Z Z Z X Y Y X Y X X Z Z X X Y Y X Z Z X Z Z X Z X X Y Z X X Z Z Y Y Y Y Z Y X X Z Y Z Z Y X X Y Z Y Y Z Z Z X Y X Y Z Z Z Z X Z Z Z Y Z Y Z Z Y X Z Y Y Z Y Y X X Z Y X Y Y Y Y X Y Z X Z Z X Z Y Z Z Z Y X X X Y Z Y Z Y Y Y X Z Z Z Z Z Y Y Z Y X X Y Y X Y X Y Y X Y Z Z X X X ...
output:
70056 001110100011000000110100110001010101110010111111111010110001011110110010011001011111001101100101101001000111110001101010001010111101010110010011101011110010000111001000001011000101001001010001100101010111011100010100100100100100111101000000010011111000000011110101000001100100011000100001010110...
input:
70056 001110100011000000110100110001010101110010111111111010110001011110110010011001011111001101100101101001000111110001101010001010111101010110010011101011110010000111001000001011000101001001010001100101010111011100010100100100100100111101000000010011111000000011110101000001100100011000100001010110...
output:
0 70056 22233
result:
points 0.98947368420 n = 99995, D = 70056, L = 22233
Test #23:
score: 0
Wrong Answer
time: 40ms
memory: 9740kb
input:
99994 Z Z Z X Z Y X Y Y Z X Z X Y Y Y X X X Y Z Y X Z Z Y Z Z Z Z X Z Z Y Y Y Z X Y X Z X Z X X Z X Z Y X Z Y Z X Y X Y X Z X Z Y X Z X X X X X X Y X Z X Y X Z Y X X Z Y Z Y Y Y X Z X X X Y X Z Z X Z X Z Y Y Y Z Z Z X Y X X X Y Z Z Z X X X Y Y Y Z X Z X Y X X Y X Z Y Z X Z Y X X Z X Y Z X X Z Y X X ...
output:
70056 110010111001101110000100000011010011001001100000010001111001100000010011011110110110110001101010111010111100110011111100111000100110110000101010111010110111111100011110110101100111001100001011101010110000100100011100110001101111010001110000101110010011000001100100110000010111001001000010000000...
input:
70056 110010111001101110000100000011010011001001100000010001111001100000010011011110110110110001101010111010111100110011111100111000100110110000101010111010110111111100011110110101100111001100001011101010110000100100011100110001101111010001110000101110010011000001100100110000010111001001000010000000...
output:
0 70056 11114
result:
wrong answer your query is valid but your solution is not optimal: read 11114 but expected 22316