QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#23937#3098. Ancient Machinedude_e#5 42ms14040kbC++202.1kb2022-03-22 13:29:052023-01-17 10:59:12

Judging History

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

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-01-17 10:59:12]
  • 评测
  • 测评结果:5
  • 用时:42ms
  • 内存:14040kb
  • [2022-03-22 13:29:05]
  • 提交

Anna

#include "Anna.h"
#include <bits/stdc++.h>
using namespace std;
namespace{
    const int maxn=1e5+5;
    const int B=183;
#define INT __uint128_t
    int a[maxn];
    INT f[maxn];
    const INT one=1;
}
char s[maxn];
void Anna(int n,vector<char>s){
    f[1]=2,f[0]=1;
    for(int i=2;i<B;i++)f[i]=f[i-1]+f[i-2];
    /* s.resize(maxn); */
    int lst=n;
    for(int i=n-1;i>=0;i--){
        if(s[i]=='Z'){
            lst=i;break;
        }
    }
    for(int i=0;i<20;i++)Send(lst>>i&1);
    /* cout<<"ANNA: "; */
    for(int i=0;i<n;i++){
        if(s[i]=='X'&&(i==0||s[i-1]!='X'))a[i]=1;
        /* cout<<a[i]<<" "; */
    }
    /* puts(""); */
    for(int i=0;i<n;i+=B){
        INT res=0;
        for(int j=0;j<B;j++){
            res+=a[i+j]*f[j];
        }
        /* cout<<"ANNA: "<<(long long )res<<endl; */
        for(int i=0;i<128;i++)Send((res>>i)&one);
        /* puts(""); */
    }
}

Bruno

#include "Bruno.h"
#include <bits/stdc++.h>
using namespace std;
namespace{
    const int maxn=1e5+5;
    const int B=183;
#define INT __uint128_t
    INT f[maxn];
    INT bs[maxn];
    int g[maxn];
    const INT one=1;
}

void Bruno(int N,int L,std::vector<int>a){
    int Z=0;
    bs[0]=1;f[1]=2,f[0]=1;
    for(int i=1;i<128;i++)bs[i]=bs[i-1]*2;
    for(int i=2;i<B;i++)f[i]=f[i-1]+f[i-2];
    /* cout<<"Bruno get: "; */
    /* for(int i=0;i<L;i++)cout<<a[i];cout<<endl; */
    for(int i=0;i<20;i++)Z|=(1<<i)*a[i];
    /* cout<<"Z "<<Z<<endl; */
    for(int i=0;i+20<L;i+=128){
        INT res=0;
        for(int j=0;j<128;j++){
            res+=bs[j]*a[i+j+20];
        }
        /* cout<<"getres "<<(long long)res<<endl; */
        for(int j=B-1;j>=0;j--){
            if(res>=f[j])res-=f[j],g[i/128*B+j]=1;
        }
    }
    /* for(int i=0;i<N;i++)cout<<g[i]<<" "; */
    /* puts(""); */
    int cur=N-1;
    while(cur>Z)Remove(cur),--cur;
    if(cur==Z)--cur;
    while(cur>=0){
        int ps=cur;
        while(!g[ps]&&ps>0)--ps;
        /* cout<<"round "<<ps<<" "<<cur<<endl; */
        for(int j=ps+1;j<=cur;j++)Remove(j);
        Remove(ps);
        cur=ps-1;
    }
    if(Z<N)Remove(Z);
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 5
Accepted

Test #1:

score: 100
Accepted
time: 4ms
memory: 5780kb

input:

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

output:

148
1111000000000000000011101100010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

input:

148
1111000000000000000011101100010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

output:

0 148 3

result:

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

Test #2:

score: 100
Accepted
time: 4ms
memory: 5700kb

input:

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

output:

148
0000100000000000000000001010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

input:

148
0000100000000000000000001010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

output:

0 148 3

result:

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

Test #3:

score: 100
Accepted
time: 4ms
memory: 5676kb

input:

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

output:

148
0000100000000000000000010111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

input:

148
0000100000000000000000010111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

output:

0 148 2

result:

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

Test #4:

score: 100
Accepted
time: 4ms
memory: 5704kb

input:

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

output:

148
0000100000000000000011000110101010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

input:

148
0000100000000000000011000110101010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

output:

0 148 2

result:

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

Test #5:

score: 100
Accepted
time: 4ms
memory: 5704kb

input:

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

output:

148
1000100000000000000011101100111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

input:

148
1000100000000000000011101100111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

output:

0 148 5

result:

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

Test #6:

score: 100
Accepted
time: 4ms
memory: 5652kb

input:

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

output:

148
1000100000000000000001100110111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

input:

148
1000100000000000000001100110111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

output:

0 148 2

result:

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

Test #7:

score: 100
Accepted
time: 4ms
memory: 5828kb

input:

3
X Y Z

output:

148
0100000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

input:

148
0100000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

output:

0 148 1

result:

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

Test #8:

score: 100
Accepted
time: 4ms
memory: 5848kb

input:

3
Z Y X

output:

148
0000000000000000000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

input:

148
0000000000000000000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

output:

0 148 0

result:

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

Test #9:

score: 100
Accepted
time: 4ms
memory: 5704kb

input:

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

output:

148
0100100000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

input:

148
0100100000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

output:

0 148 0

result:

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

Test #10:

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

input:

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

output:

148
0100100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

input:

148
0100100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

output:

0 148 0

result:

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

Test #11:

score: 100
Accepted
time: 2ms
memory: 7808kb

input:

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

output:

148
1000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

input:

148
1000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

output:

0 148 0

result:

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

Subtask #2:

score: 0
Wrong Answer

Test #12:

score: 0
Wrong Answer
time: 42ms
memory: 14040kb

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:

70036
101110010110000110001111101001000100100000000000110101101111001110010100011010011000001110110001000111101011101000000001111011010001001111011111100000000000010100110110111101010110011101111011110111111111100011110000000111101000110100100100110001010000001100111100001111011110011010010010111100...

input:

70036
101110010110000110001111101001000100100000000000110101101111001110010100011010011000001110110001000111101011101000000001111011010001001111011111100000000000010100110110111101010110011101111011110111111111100011110000000111101000110100100100110001010000001100111100001111011110011010010010111100...

output:

0 70036 22119

result:

wrong answer your query is valid but your solution is not optimal: read 22119 but expected 22133