CSES - Datatähti Open 2019 - Results
Submission details
Task:Sunset
Sender:elektrijanes
Submission time:2019-01-21 13:53:52 +0200
Language:C++
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
Test results
testverdicttimegroup
#1ACCEPTED0.02 s1details
#2ACCEPTED0.02 s1details
#3ACCEPTED0.01 s1details
#4ACCEPTED0.02 s1details
#50.02 s1details
#60.02 s1details
#7ACCEPTED0.03 s1details
#80.01 s1details
#9ACCEPTED0.02 s1details
#10ACCEPTED0.02 s1details
#11ACCEPTED0.03 s1details
#120.02 s1details
#130.01 s1details
#14ACCEPTED0.02 s1details
#15ACCEPTED0.02 s1details
#160.03 s1details
#170.02 s1details
#18ACCEPTED0.02 s2details
#190.37 s2details
#200.34 s2details
#210.20 s2details
#220.29 s2details
#23ACCEPTED0.26 s2details
#240.30 s2details
#25ACCEPTED0.17 s2details
#260.36 s2details
#270.37 s2details
#28ACCEPTED0.02 s2details
#290.28 s2details
#300.26 s2details
#310.27 s2details
#32ACCEPTED0.02 s3details
#330.41 s3details
#340.42 s3details
#350.29 s3details
#360.23 s3details
#370.32 s3details
#38ACCEPTED0.26 s3details
#390.36 s3details
#40ACCEPTED0.28 s3details
#410.42 s3details
#42ACCEPTED0.20 s3details
#430.41 s3details
#44ACCEPTED0.30 s3details
#45ACCEPTED0.28 s3details
#46ACCEPTED0.28 s3details
#47ACCEPTED0.28 s3details
#480.30 s3details
#490.26 s3details
#500.27 s3details
#510.27 s3details
#520.28 s3details
#530.30 s3details
#540.30 s3details

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:94:7: warning: unused variable 'f' [-Wunused-variable]
   int f=leiap(1,1,c,a,b);
       ^

Code

#include <bits/stdc++.h>
#define mis(x) cout << #x <<" = " <<x<<endl
#define rep(i, a, b) for(int i=(a);(i)<(b);(i)++)
#define re(i,a) rep((i),0,(a))
using namespace std;
typedef long long ll;
ifstream fin("AAtest.in.txt");
ofstream fout("AAtest.out.txt");
int const cc=1000001;
int n,l,c,k,a,b,q,ma,koht;
ll h,g;
vector<pair<ll,int> > p;
vector<int> m,pai,t;
void loe(){
	cin>>n>>q;
	re(i,n){
		cin>>h;
		p.push_back({h,i});
	}
	sort(p.begin(),p.end());
	m.resize(n);
	g=p[0].first;	l=1;
	re(i,n){
		if(i and g<p[i].first){
			g=p[i].first;
			l++;
		}
		m[p[i].second]=l;
	}
}
 
void pane(int n,int x,int y,int i,int v){
	if(i<x or y<i)return;
	if(x==y){t[n]=v;return;	}
	pane(n*2,x,(x+y)/2,i,v);
	pane(n*2+1,(x+y)/2+1,y,i,v);
	t[n]=min(t[n*2],t[n*2+1]);
}
 
int leia(int n,int x,int y,int i,int j){
	if(j<x or y<i or t[n]==cc)return cc;
	if(i<=x and y<=j)return t[n];
	return(min(leia(n*2,x,(x+y)/2,i,j),leia(n*2+1,(x+y)/2+1,y,i,j)));
}
 
void pik(int n,int x,int y,int i,int v){
	if(i<x or y<i)return;
	if(x==y){
		t[n]=v;
		return;
	}
	pik(n*2,x,(x+y)/2,i,v);
	pik(n*2+1,(x+y)/2+1,y,i,v);
	t[n]=max(t[n*2],t[n*2+1]);
}
 
int leiap(int n,int x,int y,int i,int j){
	if(j<x || y<i)return -1;
	if(x==y){
		koht=n-c;
		return t[n];
	}
	if(i<=x and y<=j){
		if(t[n]==t[n*2])return leiap(n*2,x,(x+y)/2,i,j);
		else return leiap(n*2+1,(x+y)/2+1,y,i,j);
	}
		ma=max(ma,leiap(n*2,x,(x+y)/2,i,j));
		 ma=max(ma,leiap(n*2+1,(x+y)/2+1,y,i,j));

	
	return ma;
}

int main(){
	ios::sync_with_stdio(0);cin.tie(0);	cout.tie(0);cerr.tie(0);
	loe();
	c=1;while(c<=l)c<<=1;t.resize(2*c+5,cc);
	pai.resize(n,0);
									//	for(auto i:pai)cout<<i<<" ";cout<<endl;
	for(int i=n-1;i>=0;i--){
		
		pane(1,1,c,m[i],i);
		k=cc;
		if(m[i]<l) k=leia(1,1,c,m[i]+1,l);
		if(k<cc)	pai[i]=pai[k]+1;
	}
	c=1;while(c<=n)c<<=1;
	t.resize(2*c+5);
	re(i,2*c+5)t[i]=-1;
	re(i,n)	pik(1,1,c,i+1,m[i]);
	re(i,q){
		cin>>a>>b;
		ma=0;koht=0;
		int f=leiap(1,1,c,a,b);
		int vas=pai[a-1]-pai[koht]+1;
		cout<<vas<<"\n";
	}
}

Test details

Test 1

Group: 1

Verdict: ACCEPTED

input
5 3
4 1 2 2 3
1 5
2 5
3 4

correct output
1
3
1

user output
1
3
1

Test 2

Group: 1

Verdict: ACCEPTED

input
1 1
1
1 1

correct output
1

user output
1

Test 3

Group: 1

Verdict: ACCEPTED

input
2 3
1 1000000000
1 1
2 2
1 2

correct output
1
1
2

user output
1
1
2

Test 4

Group: 1

Verdict: ACCEPTED

input
2 3
1000000000 1
1 1
2 2
1 2

correct output
1
1
1

user output
1
1
1

Test 5

Group: 1

Verdict:

input
2000 2000
387547790 498212511 224378606 ...

correct output
14
10
10
3
7
...

user output
12
6
4
3
1
...
Truncated

Test 6

Group: 1

Verdict:

input
2000 2000
13604803 27447643 34139694 383...

correct output
198
43
38
58
50
...

user output
99
43
38
20
-36
...
Truncated

Test 7

Group: 1

Verdict: ACCEPTED

input
2000 2000
387547790 498212511 224378606 ...

correct output
1
1
1
1
1
...

user output
1
1
1
1
1
...
Truncated

Test 8

Group: 1

Verdict:

input
2000 2000
409666302 646936685 583741760 ...

correct output
8
9
12
8
11
...

user output
3
6
11
6
10
...
Truncated

Test 9

Group: 1

Verdict: ACCEPTED

input
2000 2000
1000000000 1000000000 10000000...

correct output
1
1
1
1
1
...

user output
1
1
1
1
1
...
Truncated

Test 10

Group: 1

Verdict: ACCEPTED

input
2000 2000
785263 793567 1573404 1750090 ...

correct output
2000
2000
2000
2000
2000
...

user output
2000
2000
2000
2000
2000
...
Truncated

Test 11

Group: 1

Verdict: ACCEPTED

input
2000 2000
785263 793567 1573404 1750090 ...

correct output
1960
1947
1963
1942
1944
...

user output
1960
1947
1963
1942
1944
...
Truncated

Test 12

Group: 1

Verdict:

input
1999 2000
129087461 494922181 482953911 ...

correct output
10
6
6
7
7
...

user output
10
2
4
-1
4
...
Truncated

Test 13

Group: 1

Verdict:

input
2000 2000
409666302 646936685 583741760 ...

correct output
8
7
6
7
7
...

user output
4
6
3
1
7
...
Truncated

Test 14

Group: 1

Verdict: ACCEPTED

input
2000 2000
44989 1437234 1640005 1765235 ...

correct output
1233
1389
1026
150
796
...

user output
1233
1389
1026
150
796
...
Truncated

Test 15

Group: 1

Verdict: ACCEPTED

input
2000 2000
2 1 4 3 6 5 8 7 10 9 12 11 14 ...

correct output
988
994
981
979
973
...

user output
988
994
981
979
973
...
Truncated

Test 16

Group: 1

Verdict:

input
2000 2000
1999 2000 1997 1998 1995 1996 ...

correct output
1
2
1
1
2
...

user output
1
1
1
1
1
...
Truncated

Test 17

Group: 1

Verdict:

input
2000 2000
2 1 4 3 5 4 5 2 3 1 2 1 4 3 5 ...

correct output
2
1
1
2
3
...

user output
1
0
1
0
1
...
Truncated

Test 18

Group: 2

Verdict: ACCEPTED

input
1 1
1
1 1

correct output
1

user output
1

Test 19

Group: 2

Verdict:

input
100000 200000
32 22 35 59 37 2 5 5 79 53 22 ...

correct output
4
9
6
5
4
...

user output
2
7
5
2
2
...
Truncated

Test 20

Group: 2

Verdict:

input
100000 200000
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

correct output
89
35
59
25
12
...

user output
31
20
43
-51
12
...
Truncated

Test 21

Group: 2

Verdict:

input
100000 200000
32 22 35 59 37 2 5 5 79 53 22 ...

correct output
1
1
1
1
1
...

user output
1
1
1
1
1
...
Truncated

Test 22

Group: 2

Verdict:

input
100000 200000
72 58 92 12 32 29 55 87 6 49 5...

correct output
5
7
5
6
2
...

user output
-2
3
1
0
-4
...
Truncated

Test 23

Group: 2

Verdict: ACCEPTED

input
100000 200000
100 100 100 100 100 100 100 10...

correct output
1
1
1
1
1
...

user output
1
1
1
1
1
...
Truncated

Test 24

Group: 2

Verdict:

input
100000 200000
72 58 92 12 32 29 55 87 6 49 5...

correct output
4
7
6
7
4
...

user output
4
7
6
6
3
...
Truncated

Test 25

Group: 2

Verdict: ACCEPTED

input
100000 200000
72 58 92 12 32 29 55 87 6 49 5...

correct output
5
5
5
5
5
...

user output
5
5
5
5
5
...
Truncated

Test 26

Group: 2

Verdict:

input
99999 200000
20 47 84 90 88 63 39 16 74 19 ...

correct output
5
7
6
3
3
...

user output
2
4
4
-2
0
...
Truncated

Test 27

Group: 2

Verdict:

input
100000 200000
72 58 92 12 32 29 55 87 6 49 5...

correct output
6
4
9
2
5
...

user output
1
-1
9
-4
2
...
Truncated

Test 28

Group: 2

Verdict: ACCEPTED

input
5 1
4 1 5 6 9
1 3

correct output
2

user output
2

Test 29

Group: 2

Verdict:

input
100000 200000
2 1 4 3 6 5 8 7 10 9 12 11 14 ...

correct output
44
4
27
46
29
...

user output
13
-28
-2
25
19
...
Truncated

Test 30

Group: 2

Verdict:

input
100000 200000
2 1 4 3 5 4 5 2 3 1 2 1 4 3 5 ...

correct output
3
3
3
3
2
...

user output
3
3
2
3
0
...
Truncated

Test 31

Group: 2

Verdict:

input
100000 200000
2 1 4 3 6 5 8 7 10 9 12 11 14 ...

correct output
39
10
37
20
43
...

user output
38
-4
36
16
42
...
Truncated

Test 32

Group: 3

Verdict: ACCEPTED

input
1 1
1
1 1

correct output
1

user output
1

Test 33

Group: 3

Verdict:

input
100000 200000
994198482 687493351 579440176 ...

correct output
8
6
8
10
5
...

user output
1
-3
-4
-1
-4
...
Truncated

Test 34

Group: 3

Verdict:

input
100000 200000
138644593 592364551 919805093 ...

correct output
10
11
13
7
12
...

user output
6
6
8
-3
8
...
Truncated

Test 35

Group: 3

Verdict:

input
100000 200000
10770 195579 349462 442791 450...

correct output
2468
1986
2632
129
4010
...

user output
2468
-7098
-6589
-6025
2422
...
Truncated

Test 36

Group: 3

Verdict:

input
100000 200000
994198482 687493351 579440176 ...

correct output
1
2
1
2
1
...

user output
1
2
1
2
1
...
Truncated

Test 37

Group: 3

Verdict:

input
100000 200000
398809514 622635167 133376912 ...

correct output
15
13
16
11
17
...

user output
11
8
13
6
16
...
Truncated

Test 38

Group: 3

Verdict: ACCEPTED

input
100000 200000
1000000000 1000000000 10000000...

correct output
1
1
1
1
1
...

user output
1
1
1
1
1
...
Truncated

Test 39

Group: 3

Verdict:

input
100000 200000
398809514 622635167 133376912 ...

correct output
10
16
7
18
10
...

user output
10
16
7
18
10
...
Truncated

Test 40

Group: 3

Verdict: ACCEPTED

input
100000 200000
11465 15800 19042 19282 20348 ...

correct output
99542
99728
99391
99890
99716
...

user output
99542
99728
99391
99890
99716
...
Truncated

Test 41

Group: 3

Verdict:

input
99999 200000
587542096 890780320 258438313 ...

correct output
8
6
11
11
17
...

user output
-8
-11
1
3
9
...
Truncated

Test 42

Group: 3

Verdict: ACCEPTED

input
100000 200000
11283 24634 28852 37453 37625 ...

correct output
100000
100000
100000
100000
100000
...

user output
100000
100000
100000
100000
100000
...
Truncated

Test 43

Group: 3

Verdict:

input
100000 200000
398809514 622635167 133376912 ...

correct output
13
13
10
15
15
...

user output
6
7
1
7
10
...
Truncated

Test 44

Group: 3

Verdict: ACCEPTED

input
100000 200000
11465 15800 19042 19282 20348 ...

correct output
36112
6013
51073
8123
82052
...

user output
36112
6013
51073
8123
82052
...
Truncated

Test 45

Group: 3

Verdict: ACCEPTED

input
100000 200000
1 2 3 4 5 6 7 8 9 10 11 12 13 ...

correct output
99407
99529
99590
99589
99679
...

user output
99407
99529
99590
99589
99679
...
Truncated

Test 46

Group: 3

Verdict: ACCEPTED

input
100000 200000
100000 99999 99998 99997 99996...

correct output
1
1
1
1
1
...

user output
1
1
1
1
1
...
Truncated

Test 47

Group: 3

Verdict: ACCEPTED

input
100000 200000
2 1 4 3 6 5 8 7 10 9 12 11 14 ...

correct output
49946
49703
49786
49864
49720
...

user output
49946
49703
49786
49864
49720
...
Truncated

Test 48

Group: 3

Verdict:

input
100000 200000
99999 100000 99997 99998 99995...

correct output
2
1
2
2
1
...

user output
1
1
2
1
1
...
Truncated

Test 49

Group: 3

Verdict:

input
100000 200000
2 1 4 3 5 4 5 2 3 1 2 1 4 3 5 ...

correct output
3
3
3
3
2
...

user output
3
3
2
3
0
...
Truncated

Test 50

Group: 3

Verdict:

input
100000 200000
2 1 4 3 6 5 8 7 10 9 12 11 14 ...

correct output
19
23
2
21
4
...

user output
13
16
-2
21
-7
...
Truncated

Test 51

Group: 3

Verdict:

input
100000 200000
2 1 4 3 6 5 8 7 10 9 12 11 14 ...

correct output
112
237
49
141
57
...

user output
111
236
49
140
57
...
Truncated

Test 52

Group: 3

Verdict:

input
100000 200000
2 1 4 3 6 5 8 7 10 9 12 11 14 ...

correct output
2457
2199
2351
2450
2475
...

user output
2457
2199
2351
2450
2474
...
Truncated

Test 53

Group: 3

Verdict:

input
100000 200000
2 1 4 3 6 5 8 7 10 9 12 11 14 ...

correct output
24841
24973
24865
24823
24969
...

user output
24840
24972
24865
24823
24969
...
Truncated

Test 54

Group: 3

Verdict:

input
100000 200000
49999 50000 49997 49998 49995 ...

correct output
210
1
2
2
1
...

user output
210
-134
-25
-189
-77
...
Truncated