QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#497324#3098. Ancient Machinebykem5 42ms9908kbC++201.9kb2024-07-28 23:13:042024-07-28 23:13:04

Judging History

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

  • [2024-07-28 23:13:04]
  • 评测
  • 测评结果:5
  • 用时:42ms
  • 内存:9908kb
  • [2024-07-28 23:13:04]
  • 提交

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);
  }
}

詳細信息

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