QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#449616#7979. 棋盘rqoi0310 157ms1748kbC++142.5kb2024-06-21 15:23:252024-06-21 15:23:26

Judging History

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

  • [2024-06-21 15:23:26]
  • 评测
  • 测评结果:0
  • 用时:157ms
  • 内存:1748kb
  • [2024-06-21 15:23:25]
  • 提交

answer

#include<stdio.h>
#include<algorithm>
#include<cstring>
template<int N>
class number {
    private:
    int len,dig[N+5];
    public:
    constexpr number():len(0),dig{} {}
    constexpr number(int x):len(0),dig{} {
        while(x>0) {
            dig[len++]=x%10,x/=10;
        }
    }
    constexpr void clear() {
        std::memset(dig,0,len*sizeof(int));
    }
    constexpr void assign(int x) {
        clear();
        while(x>0) {
            dig[len++]=x%10,x/=10;
        }
    }
    constexpr void assign(const char* s) {
        clear();
        if(s[0]=='0') {
            return;
        }
        len=std::strlen(s);
        for(int i=0;i!=len;i++) {
            dig[i]=s[len-1-i]^'0';
        }
    }
    constexpr bool operator<(const number<N> &x) const {
        if(len!=x.len) {
            return len<x.len;
        }
        for(int i=len-1;i!=-1;i--) {
            if(dig[i]<x.dig[i]) {
                return true;
            }
        }
        return false;
    }
    constexpr number<N> operator+(const number<N> &x) const {
        number<N> y;
        y.len=std::max(len,x.len);
        for(int i=0;i!=y.len;i++) {
            if((y.dig[i]+=dig[i]+x.dig[i])>=10) {
                y.dig[i]-=10,++y.dig[i+1];
            }
        }
        y.len+=!!y.dig[y.len];
        return y;
    }
    inline void print() const {
        if(len==0) {
            putchar('0');
            return;
        }
        for(int i=len-1;i!=-1;i--) {
            printf("%d",dig[i]);
        }
    }
};
number<100> fib[485];
char str[105],ans[965];
int main() {
    int k,q,x,y;
    scanf("%d%d%d%d",&k,&q,&x,&y);
    const int n(std::min(x>>1,240));
    fib[0].assign(1),fib[1].assign(1);
    int nx(1),ny(2);
    printf("1 1\n1 2\n");
    for(int i=2;i<=n;i++) {
        fib[i]=fib[i-1]+fib[i-2];
        if(i&1) {
            ++ny;
            printf("%d %d\n",nx-1,ny);
        }
        else {
            ++nx;
            printf("%d %d\n",nx,ny-1);
        }
        printf("%d %d\n",nx,ny);
    }
    for(int i=1;i<=q;i++) {
        scanf("%s",str);
        number<100> tar,cur;
        tar.assign(str);
        std::memset(ans,'0',n<<1);
        for(int j=n;j>=1;j--) {
            const number<100> tmp(cur+fib[j]);
            if(!(tar<tmp)) {
                cur=tmp;
                ans[(j<<1)-1]='1';
            }
        }
        ans[n<<1]=0;
        puts(ans);
    }
    return 0;
}

详细

Subtask #1:

score: 0
Wrong Answer

Test #1:

score: 0
Wrong Answer
time: 8ms
memory: 1696kb

input:

3 999 1000 340
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
...

output:

1 1
1 2
2 1
2 2
1 3
2 3
3 2
3 3
2 4
3 4
4 3
4 4
3 5
4 5
5 4
5 5
4 6
5 6
6 5
6 6
5 7
6 7
7 6
7 7
6 8
7 8
8 7
8 8
7 9
8 9
9 8
9 9
8 10
9 10
10 9
10 10
9 11
10 11
11 10
11 11
10 12
11 12
12 11
12 12
11 13
12 13
13 12
13 13
12 14
13 14
14 13
14 14
13 15
14 15
15 14
15 15
14 16
15 16
16 15
16 16
15 17
16...

result:

wrong answer Wrong[0]

Subtask #2:

score: 0
Wrong Answer

Test #2:

score: 0
Wrong Answer
time: 78ms
memory: 1736kb

input:

12 10000 1000 340
358908473750
36343501002
904324605639
453955046266
725478753662
218319365131
882878650993
648345848966
474401697383
722377018680
718743783955
748051292505
167886140898
411111004914
327825244967
990026144963
623309580364
970889332700
319445927842
527624602835
453135227321
1153226125...

output:

1 1
1 2
2 1
2 2
1 3
2 3
3 2
3 3
2 4
3 4
4 3
4 4
3 5
4 5
5 4
5 5
4 6
5 6
6 5
6 6
5 7
6 7
7 6
7 7
6 8
7 8
8 7
8 8
7 9
8 9
9 8
9 9
8 10
9 10
10 9
10 10
9 11
10 11
11 10
11 11
10 12
11 12
12 11
12 12
11 13
12 13
13 12
13 13
12 14
13 14
14 13
14 14
13 15
14 15
15 14
15 15
14 16
15 16
16 15
16 16
15 17
16...

result:

wrong answer Wrong[0]

Subtask #3:

score: 0
Wrong Answer

Test #5:

score: 0
Wrong Answer
time: 155ms
memory: 1688kb

input:

100 10000 1000 340
87490023455826213450979333037504606824522062808297739018786336978222089712660133428564103979384831
874900289913204769749000879539227331559680630241808944569515663934025397982898503777823815274323967
8749002899116133353924895735921513229471979456689635148877567298640178774668643967...

output:

1 1
1 2
2 1
2 2
1 3
2 3
3 2
3 3
2 4
3 4
4 3
4 4
3 5
4 5
5 4
5 5
4 6
5 6
6 5
6 6
5 7
6 7
7 6
7 7
6 8
7 8
8 7
8 8
7 9
8 9
9 8
9 9
8 10
9 10
10 9
10 10
9 11
10 11
11 10
11 11
10 12
11 12
12 11
12 12
11 13
12 13
13 12
13 13
12 14
13 14
14 13
14 14
13 15
14 15
15 14
15 15
14 16
15 16
16 15
16 16
15 17
16...

result:

wrong answer Wrong[0]

Subtask #4:

score: 0
Wrong Answer

Test #7:

score: 0
Wrong Answer
time: 152ms
memory: 1688kb

input:

100 10000 990 310
4083451712318559926139496762164571032902328806667934236880329773320213539959944736095945843081512968
7811890641057562314768022152641517082686481268288006737090208624016586608183953908313798353213188661
97358161226180890688421784730819518002666166790210320310558753031161862165361257...

output:

1 1
1 2
2 1
2 2
1 3
2 3
3 2
3 3
2 4
3 4
4 3
4 4
3 5
4 5
5 4
5 5
4 6
5 6
6 5
6 6
5 7
6 7
7 6
7 7
6 8
7 8
8 7
8 8
7 9
8 9
9 8
9 9
8 10
9 10
10 9
10 10
9 11
10 11
11 10
11 11
10 12
11 12
12 11
12 12
11 13
12 13
13 12
13 13
12 14
13 14
14 13
14 14
13 15
14 15
15 14
15 15
14 16
15 16
16 15
16 16
15 17
16...

result:

wrong answer Wrong[0]

Subtask #5:

score: 0
Wrong Answer

Test #9:

score: 0
Wrong Answer
time: 149ms
memory: 1712kb

input:

100 10000 1050 260
8749002899132047697490008908470485461412677723566863434996575047286849703722697797645542008396185599
8749002899132047697490008908470485461412677699052921091826559946707718798046219210886366418022957055
7655377536740541735303757766642121742076255665128332760334129720709510994307378...

output:

1 1
1 2
2 1
2 2
1 3
2 3
3 2
3 3
2 4
3 4
4 3
4 4
3 5
4 5
5 4
5 5
4 6
5 6
6 5
6 6
5 7
6 7
7 6
7 7
6 8
7 8
8 7
8 8
7 9
8 9
9 8
9 9
8 10
9 10
10 9
10 10
9 11
10 11
11 10
11 11
10 12
11 12
12 11
12 12
11 13
12 13
13 12
13 13
12 14
13 14
14 13
14 14
13 15
14 15
15 14
15 15
14 16
15 16
16 15
16 16
15 17
16...

result:

wrong answer Wrong[0]

Subtask #6:

score: 0
Wrong Answer

Test #11:

score: 0
Wrong Answer
time: 157ms
memory: 1728kb

input:

100 10000 1050 240
8749002899132047697490008908470485461412677723572849734285100881333676956761384191490477496469520383
874886939179415873527191365288672777702448917037688119492655525651250910013304087281579324577152991
87490028991320476974900089084704854614126777235728490149522637601883528949454159...

output:

1 1
1 2
2 1
2 2
1 3
2 3
3 2
3 3
2 4
3 4
4 3
4 4
3 5
4 5
5 4
5 5
4 6
5 6
6 5
6 6
5 7
6 7
7 6
7 7
6 8
7 8
8 7
8 8
7 9
8 9
9 8
9 9
8 10
9 10
10 9
10 10
9 11
10 11
11 10
11 11
10 12
11 12
12 11
12 12
11 13
12 13
13 12
13 13
12 14
13 14
14 13
14 14
13 15
14 15
15 14
15 15
14 16
15 16
16 15
16 16
15 17
16...

result:

wrong answer Wrong[0]

Subtask #7:

score: 0
Wrong Answer

Test #13:

score: 0
Wrong Answer
time: 0ms
memory: 1708kb

input:

100 1 980 260
8749002899132047697490008908470485461309833682610292204604841418296589481615503153703163411103219711

output:

1 1
1 2
2 1
2 2
1 3
2 3
3 2
3 3
2 4
3 4
4 3
4 4
3 5
4 5
5 4
5 5
4 6
5 6
6 5
6 6
5 7
6 7
7 6
7 7
6 8
7 8
8 7
8 8
7 9
8 9
9 8
9 9
8 10
9 10
10 9
10 10
9 11
10 11
11 10
11 11
10 12
11 12
12 11
12 12
11 13
12 13
13 12
13 13
12 14
13 14
14 13
14 14
13 15
14 15
15 14
15 15
14 16
15 16
16 15
16 16
15 17
16...

result:

wrong answer Wrong[0]

Subtask #8:

score: 0
Wrong Answer

Test #19:

score: 0
Wrong Answer
time: 154ms
memory: 1748kb

input:

100 10000 960 240
8749002899132047697015724510954438324957730968977252383122989921226002617013223698533483281626692607
8749002899132047697490008908470485461412677720507858663971304708923117942496885325656574463725010943
87148271065573131361716885470369961093519598137825155235803895087505468828694702...

output:

1 1
1 2
2 1
2 2
1 3
2 3
3 2
3 3
2 4
3 4
4 3
4 4
3 5
4 5
5 4
5 5
4 6
5 6
6 5
6 6
5 7
6 7
7 6
7 7
6 8
7 8
8 7
8 8
7 9
8 9
9 8
9 9
8 10
9 10
10 9
10 10
9 11
10 11
11 10
11 11
10 12
11 12
12 11
12 12
11 13
12 13
13 12
13 13
12 14
13 14
14 13
14 14
13 15
14 15
15 14
15 15
14 16
15 16
16 15
16 16
15 17
16...

result:

wrong answer Wrong[0]