QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#497326#3098. Ancient Machinebykem5 40ms9976kbC++201.9kb2024-07-28 23:17:342024-07-28 23:17:34

Judging History

你现在查看的是最新测评结果

  • [2024-07-28 23:17:34]
  • 评测
  • 测评结果:5
  • 用时:40ms
  • 内存:9976kb
  • [2024-07-28 23:17:34]
  • 提交

Anna

#include "Anna.h"

using namespace std;
using ull = unsigned long long;

const int kS = 80, kB = 56;

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 = 80, kB = 56;

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: 3804kb

input:

18
Y X Y Z X Z X X Z Z Y Y Z Y Y Z X X

output:

56
01011001101111100100111111101100001001001010011010000001

input:

56
01011001101111100100111111101100001001001010011010000001

output:

0 56 3

result:

ok n = 18, D = 56, L = 3

Test #2:

score: 100
Accepted
time: 0ms
memory: 3808kb

input:

18
X Z X Y Y Y X Z X Y Z Z Z Z Y Z Z Y

output:

56
01000011001111000011001001100000100101111000001101111011

input:

56
01000011001111000011001001100000100101111000001101111011

output:

0 56 3

result:

ok n = 18, D = 56, L = 3

Test #3:

score: 100
Accepted
time: 0ms
memory: 3740kb

input:

18
Y Z Z Y Z X X Z Y Y Z Z Z Y X X Z Y

output:

56
11000011010110001001100100011010011111010000001010001000

input:

56
11000011010110001001100100011010011111010000001010001000

output:

0 56 2

result:

ok n = 18, D = 56, L = 2

Test #4:

score: 100
Accepted
time: 0ms
memory: 3788kb

input:

18
X Z Z X Z X X Z X Y Y X X Z X Y Z X

output:

56
11110110110011011101100001001101100101010111100101001011

input:

56
11110110110011011101100001001101100101010111100101001011

output:

0 56 2

result:

ok n = 18, D = 56, L = 2

Test #5:

score: 100
Accepted
time: 0ms
memory: 4036kb

input:

18
X Y X Y Y X X Z Y Z Y X Z Y Y X X Z

output:

56
00001010100000010001010101000110011000110001111010110001

input:

56
00001010100000010001010101000110011000110001111010110001

output:

0 56 5

result:

ok n = 18, D = 56, L = 5

Test #6:

score: 100
Accepted
time: 0ms
memory: 3808kb

input:

18
X X Y Z X Y Y Y X X Z X X X Z X Z Z

output:

56
11010010111110101001100001111000101111101011010111100101

input:

56
11010010111110101001100001111000101111101011010111100101

output:

0 56 2

result:

ok n = 18, D = 56, L = 2

Test #7:

score: 100
Accepted
time: 0ms
memory: 3864kb

input:

3
X Y Z

output:

56
11111011000100100011110000000101100101100110000001011101

input:

56
11111011000100100011110000000101100101100110000001011101

output:

0 56 1

result:

ok n = 3, D = 56, L = 1

Test #8:

score: 100
Accepted
time: 0ms
memory: 3816kb

input:

3
Z Y X

output:

56
10111110110010010011100100011011010000010101011011001100

input:

56
10111110110010010011100100011011010000010101011011001100

output:

0 56 0

result:

ok n = 3, D = 56, L = 0

Test #9:

score: 100
Accepted
time: 0ms
memory: 4068kb

input:

18
X X X X X X X X X X X X X X X X X X

output:

56
01000110101011011111100111100011011001111101100101100001

input:

56
01000110101011011111100111100011011001111101100101100001

output:

0 56 0

result:

ok n = 18, D = 56, L = 0

Test #10:

score: 100
Accepted
time: 0ms
memory: 3788kb

input:

18
Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y

output:

56
00000000000000000000000000000000000000000000000000000000

input:

56
00000000000000000000000000000000000000000000000000000000

output:

0 56 0

result:

ok n = 18, D = 56, L = 0

Test #11:

score: 100
Accepted
time: 0ms
memory: 4056kb

input:

18
Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z

output:

56
00000000000000000000000000000000000000000000000000000000

input:

56
00000000000000000000000000000000000000000000000000000000

output:

0 56 0

result:

ok n = 18, D = 56, L = 0

Subtask #2:

score: 0
Wrong Answer

Test #12:

score: 100
Accepted
time: 32ms
memory: 9860kb

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:

70000
100100001000010000100011111001010001111001100010010011111100100010110111111111110100110111000010101011111001000100010100110111010010101010010010111111001000001100101100000110111111110101100001011001100101011111110101111010001100011011010011010101101100001100110110101010100001100111010010001010...

input:

70000
100100001000010000100011111001010001111001100010010011111100100010110111111111110100110111000010101011111001000100010100110111010010101010010010111111001000001100101100000110111111110101100001011001100101011111110101111010001100011011010011010101101100001100110110101010100001100111010010001010...

output:

0 70000 22133

result:

points 1.0 n = 100000, D = 70000, L = 22133

Test #13:

score: 100
Accepted
time: 32ms
memory: 9868kb

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:

70000
011011011011011011100110111000110001011111100000011110101000101100010000010100011001010000011000111100110110010110010011110011110010000001000101111001001000001111001010000100111000001000010000000110111101101000011100101111001111010000011101010000010010011010100110111100100101100011000010110010...

input:

70000
011011011011011011100110111000110001011111100000011110101000101100010000010100011001010000011000111100110110010110010011110011110010000001000101111001001000001111001010000100111000001000010000000110111101101000011100101111001111010000011101010000010010011010100110111100100101100011000010110010...

output:

0 70000 22275

result:

points 1.0 n = 100000, D = 70000, L = 22275

Test #14:

score: 100
Accepted
time: 20ms
memory: 9900kb

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:

70000
100000011111110110101111000111111001100111011100001011110101011100100101101011001011101001110101011010101100101011101011010011111000000000110111110111111111110010110000101010101011010110000110111011111111011001000110000111001011010110100110011011101111100010011010000000100100100011100110111111...

input:

70000
100000011111110110101111000111111001100111011100001011110101011100100101101011001011101001110101011010101100101011101011010011111000000000110111110111111111110010110000101010101011010110000110111011111111011001000110000111001011010110100110011011101111100010011010000000100100100011100110111111...

output:

0 70000 22177

result:

points 1.0 n = 100000, D = 70000, L = 22177

Test #15:

score: 100
Accepted
time: 40ms
memory: 9736kb

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:

70000
101111110000101110100100001001011101011011010111111011000001001001111111100100001111111011000100010001010101000111000111111101001010100001101101010100000000111001011001000011001111110110110101110011101101001011000010010101100100001100111110010010101100001111011111111100101100011010011110101010...

input:

70000
101111110000101110100100001001011101011011010111111011000001001001111111100100001111111011000100010001010101000111000111111101001010100001101101010100000000111001011001000011001111110110110101110011101101001011000010010101100100001100111110010010101100001111011111111100101100011010011110101010...

output:

0 70000 22192

result:

points 1.0 n = 100000, D = 70000, L = 22192

Test #16:

score: 100
Accepted
time: 40ms
memory: 9760kb

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:

70000
001010011011100110111000001010010010110100100001000111000001000111100111000010000011100010010100101011001110100010111101011000101100110000101100010001010110011011000000001011111010100011011111101101010000000101000100000110100101000110001100011101100100101000001011010110101110001010101101011001...

input:

70000
001010011011100110111000001010010010110100100001000111000001000111100111000010000011100010010100101011001110100010111101011000101100110000101100010001010110011011000000001011111010100011011111101101010000000101000100000110100101000110001100011101100100101000001011010110101110001010101101011001...

output:

0 70000 22119

result:

points 1.0 n = 100000, D = 70000, L = 22119

Test #17:

score: 100
Accepted
time: 32ms
memory: 9976kb

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:

70000
010110110110110001111111011100110111110101001001100100010001101100100110111110010101000100001010100001001110010100100011101101111111110111000111111111100011110011001010111111100011110010101101010000111001010100011001001011000001011111001000100010110001000000111000010010000000001001111101011000...

input:

70000
010110110110110001111111011100110111110101001001100100010001101100100110111110010101000100001010100001001110010100100011101101111111110111000111111111100011110011001010111111100011110010101101010000111001010100011001001011000001011111001000100010110001000000111000010010000000001001111101011000...

output:

0 70000 22256

result:

points 1.0 n = 100000, D = 70000, L = 22256

Test #18:

score: 100
Accepted
time: 32ms
memory: 9772kb

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:

70000
001111001001111011100010001000000001100010101011010010110010010001110110010101111011110011110000011100100000010001111001010110000111110011000111110110001010011001101100101010010011111011111001010110110101101100011011111100000000110001000111101011011110110111100111111001010101011001110000111001...

input:

70000
001111001001111011100010001000000001100010101011010010110010010001110110010101111011110011110000011100100000010001111001010110000111110011000111110110001010011001101100101010010011111011111001010110110101101100011011111100000000110001000111101011011110110111100111111001010101011001110000111001...

output:

0 70000 22071

result:

points 1.0 n = 100000, D = 70000, L = 22071

Test #19:

score: 100
Accepted
time: 28ms
memory: 9868kb

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:

70000
000010110110001011100000001100110101110000110100011001111001110011000010000111101001110010001001101000111000000010100101100101110000101101010010001011110011011010010110001100110011100011000110010101100011001011011111110101001001111001101111010010000000000100011011011010101110001001000111100111...

input:

70000
000010110110001011100000001100110101110000110100011001111001110011000010000111101001110010001001101000111000000010100101100101110000101101010010001011110011011010010110001100110011100011000110010101100011001011011111110101001001111001101111010010000000000100011011011010101110001001000111100111...

output:

0 70000 22257

result:

points 1.0 n = 100000, D = 70000, L = 22257

Test #20:

score: 100
Accepted
time: 40ms
memory: 9904kb

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:

70000
101101010010001000111111000000101001010101010000110010110000101011000110101001010000000110100110000011111011101011101110000000000011010011100100011001011011000111001100111110000010110001101001011100010000101101001100001010100100111110101101010000111110101100000010010001100110001110001010010001...

input:

70000
101101010010001000111111000000101001010101010000110010110000101011000110101001010000000110100110000011111011101011101110000000000011010011100100011001011011000111001100111110000010110001101001011100010000101101001100001010100100111110101101010000111110101100000010010001100110001110001010010001...

output:

0 70000 22040

result:

points 1.0 n = 99997, D = 70000, L = 22040

Test #21:

score: 100
Accepted
time: 40ms
memory: 9812kb

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:

70000
100000100010001010111000111000011101100101101100110111010110101110100001001000001000001101100001111100110010010111111101101111010010011100111011100100101010101100011100000110010111000101000100100001000000000111000101101010000010011110100010101111100000110011000000110001111001110001010011101001...

input:

70000
100000100010001010111000111000011101100101101100110111010110101110100001001000001000001101100001111100110010010111111101101111010010011100111011100100101010101100011100000110010111000101000100100001000000000111000101101010000010011110100010101111100000110011000000110001111001110001010011101001...

output:

0 70000 22360

result:

points 1.0 n = 99996, D = 70000, L = 22360

Test #22:

score: 100
Accepted
time: 26ms
memory: 9868kb

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:

70000
110101100110000001111000111111010001001110011100010110111111000001011010100001011100110010000110110010010111010100000111110010110010011101001110001111011100100100011000111011110011000011110111110011000010011101111110000000000101100110010010011100111000111100100000000101100110110010001101100001...

input:

70000
110101100110000001111000111111010001001110011100010110111111000001011010100001011100110010000110110010010111010100000111110010110010011101001110001111011100100100011000111011110011000011110111110011000010011101111110000000000101100110010010011100111000111100100000000101100110110010001101100001...

output:

0 70000 22233

result:

points 1.0 n = 99995, D = 70000, L = 22233

Test #23:

score: 0
Wrong Answer
time: 32ms
memory: 9816kb

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:

70000
111000111000101001000010101111101001010111111011101011001010011111111011100110100111011010001000000101110111110100011011101101111101010101011000000100010000000111011010001001101001000011000000111101011011101001111000010110101011101101000010011100111110011111110101001100101001011000101010111111...

input:

70000
111000111000101001000010101111101001010111111011101011001010011111111011100110100111011010001000000101110111110100011011101101111101010101011000000100010000000111011010001001101001000011000000111101011011101001111000010110101011101101000010011100111110011111110101001100101001011000101010111111...

output:

0 70000 11114

result:

wrong answer your query is valid but your solution is not optimal: read 11114 but expected 22316