QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#492812#8819. CNOI KnowledgehyxleAC ✓96ms24464kbC++141.1kb2024-07-26 16:22:252024-07-26 16:22:31

Judging History

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

  • [2024-07-26 16:22:31]
  • 评测
  • 测评结果:AC
  • 用时:96ms
  • 内存:24464kb
  • [2024-07-26 16:22:25]
  • 提交

answer

#include<bits/stdc++.h>
#define ll long long
#define R register
#define ull unsigned ll
using namespace std;
const int N=1e3+5;const ull base=322771;
unordered_map<ull,int> mp;
inline int ask(int l,int r){int _;cout<<'?'<<' '<<l<<' '<<r<<endl;cin>>_;return _;}
int f[N],ans[N],n,cntdiff,tag[N];
inline int getid(int l,int r){
    int rr=r,res=r;
    while(l<=r){
        int mid=l+r>>1;
        if(ask(mid,rr)-f[mid]==rr-mid+1)res=mid,r=mid-1;
        else l=mid+1;
    }
    return r;
}
int main(){
    ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);
    cin>>n;
    ans[1]=f[1]=cntdiff=mp[1]=1;
    for(R int i=2;i<=n;++i){
        ull _h=0;
        int id=getid(1,i);
        if(!id)ans[i]=++cntdiff;
        else ans[i]=ans[id];
        for(R int j=1;j<=i;++j)tag[j]=0;
        for(R int j=i;j>=1;--j){
            _h=_h*base+ans[j];
            ++tag[mp[_h]+1],--tag[j+1];
            mp[_h]=j;
        }
        for(R int j=1;j<=i;++j)tag[j]+=tag[j-1],f[j]+=tag[j];
    }
    cout<<"! ";for(R int i=1;i<=n;++i)cout<<ans[i]<<' ';
    cout<<endl;
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 1ms
memory: 3612kb

input:

12
3
3
6
6
10
6
15
10
21
10
20
15
14
6
9
14
34
43
19
5
2
1
19
5
13
8
25
9
19

output:

? 1 2
? 2 3
? 1 3
? 2 4
? 1 4
? 3 5
? 1 5
? 3 6
? 1 6
? 4 7
? 2 7
? 3 7
? 4 8
? 6 8
? 5 8
? 5 9
? 2 9
? 1 9
? 5 10
? 8 10
? 9 10
? 10 10
? 6 11
? 9 11
? 7 11
? 8 11
? 6 12
? 9 12
? 7 12
! 1 2 3 4 5 6 2 5 7 7 5 6 

result:

ok Accepted. 29 queries used.

Test #2:

score: 0
Accepted
time: 96ms
memory: 24036kb

input:

1000
3
2
1
3
2
1
5
11
7
8
2
1
7
2
1
11
5
7
11
5
3
15
5
2
1
15
3
2
1
19
4
2
1
17
4
2
1
20
4
2
1
15
4
2
1
23
9
13
15
23
11
5
3
31
11
5
3
36
11
5
2
1
45
15
3
2
1
48
15
5
11
7
58
16
5
2
1
59
16
5
12
8
69
21
8
2
1
69
20
8
3
5
79
20
8
2
1
76
20
8
3
5
87
26
8
3
5
88
26
8
2
1
100
24
8
3
5
98
24
8
2
1
111
31...

output:

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

result:

ok Accepted. 8792 queries used.

Test #3:

score: 0
Accepted
time: 89ms
memory: 24020kb

input:

1000
2
1
2
1
5
7
5
2
1
7
2
1
7
16
11
11
5
2
1
11
3
2
1
14
3
2
1
11
3
2
1
13
4
2
1
7
4
2
1
15
51
32
23
20
8
2
1
28
12
5
8
31
12
5
2
1
38
11
3
2
1
38
9
3
2
1
44
14
5
9
44
14
5
2
1
54
15
3
2
1
56
14
3
2
1
65
17
4
2
1
66
17
7
11
76
17
8
2
1
76
20
8
3
5
87
26
8
2
1
88
26
8
3
5
102
26
8
3
5
102
26
8
2
1
1...

output:

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

result:

ok Accepted. 8780 queries used.

Test #4:

score: 0
Accepted
time: 79ms
memory: 24192kb

input:

1000
3
3
5
5
2
1
5
11
8
8
2
1
8
3
5
12
5
2
1
11
3
2
1
16
5
11
7
15
5
3
20
7
3
5
21
8
2
1
27
7
2
1
26
4
2
1
31
5
3
2
1
27
5
3
2
1
31
5
3
2
1
26
5
3
2
1
35
11
17
26
35
14
5
3
44
15
5
2
1
44
15
3
2
1
53
19
4
2
1
55
19
7
14
9
63
19
8
3
5
62
19
8
2
1
69
24
7
2
1
70
23
7
15
11
81
23
8
3
5
83
25
7
3
5
99
3...

output:

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

result:

ok Accepted. 8787 queries used.

Test #5:

score: 0
Accepted
time: 75ms
memory: 24068kb

input:

1000
2
1
2
1
5
7
5
3
8
2
1
7
2
1
9
3
2
1
5
3
2
1
6
3
2
1
11
27
20
13
17
8
2
1
20
8
3
5
26
8
3
5
26
8
2
1
31
11
5
8
28
11
5
3
36
11
5
3
34
9
5
3
41
11
5
3
45
14
5
2
1
55
15
5
11
8
56
16
5
2
1
65
21
8
3
5
65
20
8
2
1
75
20
8
3
5
76
21
8
3
5
87
26
8
2
1
85
24
8
3
5
95
24
8
2
1
92
26
8
3
5
101
32
12
5
2...

output:

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

result:

ok Accepted. 8778 queries used.

Test #6:

score: 0
Accepted
time: 86ms
memory: 24184kb

input:

1000
2
1
3
5
5
2
1
5
12
8
8
2
1
8
3
5
12
5
2
1
12
5
8
16
5
2
1
16
5
12
8
21
8
3
5
21
7
3
5
26
7
3
5
23
7
3
5
27
9
5
3
27
11
5
2
1
34
11
5
8
34
11
5
3
41
15
5
3
41
14
5
3
48
11
5
3
52
14
5
2
1
63
19
7
2
1
66
20
7
15
11
77
21
8
2
1
79
21
7
2
1
91
27
7
16
11
91
27
8
2
1
104
26
8
3
5
103
26
8
2
1
115
31...

output:

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

result:

ok Accepted. 8781 queries used.

Test #7:

score: 0
Accepted
time: 75ms
memory: 24388kb

input:

1000
3
2
1
3
2
1
5
12
8
2
1
7
2
1
11
5
7
11
5
3
15
5
2
1
15
3
2
1
22
41
61
50
23
8
3
5
29
7
3
5
29
8
2
1
37
13
23
29
37
13
5
3
45
11
5
3
44
9
5
3
51
11
5
3
47
11
5
3
57
15
29
47
38
58
17
6
13
9
69
22
9
3
6
68
21
9
3
6
80
21
9
3
5
80
23
9
18
13
94
30
9
3
6
94
31
9
2
1
108
30
9
17
13
110
28
9
17
13
12...

output:

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

result:

ok Accepted. 8757 queries used.

Test #8:

score: 0
Accepted
time: 82ms
memory: 24464kb

input:

1000
3
2
1
5
9
6
13
9
9
3
5
7
3
5
11
5
2
1
11
3
2
1
17
37
29
22
17
5
2
1
22
7
2
1
19
4
2
1
27
63
44
35
28
9
15
21
35
13
6
9
33
13
5
2
1
42
13
5
8
43
11
5
3
52
15
5
3
54
16
5
2
1
65
17
37
29
65
18
5
3
76
23
7
3
5
77
23
9
17
89
23
9
3
6
87
23
9
2
1
100
29
7
2
1
100
30
7
17
11
115
30
9
17
23
116
30
9
2...

output:

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

result:

ok Accepted. 8720 queries used.

Test #9:

score: 0
Accepted
time: 64ms
memory: 24452kb

input:

1000
3
3
6
5
2
1
5
13
8
8
2
1
9
18
24
13
5
2
1
13
31
24
18
18
5
3
17
5
3
23
9
17
23
9
2
1
29
7
2
1
27
4
2
1
32
5
3
2
1
29
5
3
2
1
33
5
3
2
1
33
9
15
24
42
15
24
33
42
17
6
13
9
51
17
5
2
1
51
17
5
13
9
63
23
8
2
1
67
23
7
2
1
80
23
7
16
11
83
21
8
2
1
95
26
8
3
5
95
29
62
44
35
110
30
9
3
5
111
30
8...

output:

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

result:

ok Accepted. 8742 queries used.

Test #10:

score: 0
Accepted
time: 69ms
memory: 24316kb

input:

1000
2
1
3
5
6
9
6
13
9
9
2
1
7
2
1
12
22
17
11
5
3
15
5
3
17
36
29
22
23
9
2
1
23
9
18
13
30
8
3
5
30
8
2
1
36
11
5
8
33
11
5
3
41
11
5
3
41
12
27
32
51
17
5
2
1
51
18
5
13
8
61
18
6
13
62
18
5
2
1
74
24
9
18
13
75
23
9
17
13
87
23
9
3
5
88
23
7
3
5
100
28
7
3
5
101
28
9
15
21
115
27
9
3
5
115
28
8...

output:

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

result:

ok Accepted. 8735 queries used.

Test #11:

score: 0
Accepted
time: 71ms
memory: 24452kb

input:

1000
2
1
3
5
5
2
1
5
12
8
9
18
9
3
6
13
5
2
1
13
5
8
18
6
13
18
5
3
24
8
2
1
24
9
18
13
30
8
3
5
29
8
2
1
36
11
3
2
1
36
12
22
29
45
12
29
23
17
46
13
5
3
55
17
5
3
53
15
5
3
64
15
35
28
21
64
17
6
13
9
76
23
9
2
1
76
24
8
3
5
88
24
9
18
13
89
24
9
2
1
102
31
9
18
13
102
30
8
2
1
116
30
8
3
5
115
30...

output:

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

result:

ok Accepted. 8740 queries used.

Extra Test:

score: 0
Extra Test Passed