Code Submission Evaluation System Login

HIIT Open 2017

Start:2017-05-27 11:00:00
End:2017-05-27 16:00:00
 

Tasks | Messages | Scoreboard | Statistics


CSES - HIIT Open 2017 - Results
History
2017-05-27 11:45:49
Task:Contest
Sender:Game of Nolife
Submission time:2017-05-27 11:45:49
Language:C++
Status:READY
Result:ACCEPTED

Test results

testverdicttime (s)
#1ACCEPTED0.03 / 1.00details
#2ACCEPTED0.06 / 1.00details
#3ACCEPTED0.04 / 1.00details
#4ACCEPTED0.07 / 1.00details
#5ACCEPTED0.06 / 1.00details
#6ACCEPTED0.08 / 1.00details
#7ACCEPTED0.06 / 1.00details
#8ACCEPTED0.05 / 1.00details
#9ACCEPTED0.05 / 1.00details
#10ACCEPTED0.07 / 1.00details
#11ACCEPTED0.07 / 1.00details
#12ACCEPTED0.05 / 1.00details
#13ACCEPTED0.03 / 1.00details
#14ACCEPTED0.06 / 1.00details
#15ACCEPTED0.07 / 1.00details
#16ACCEPTED0.04 / 1.00details
#17ACCEPTED0.07 / 1.00details
#18ACCEPTED0.06 / 1.00details
#19ACCEPTED0.06 / 1.00details
#20ACCEPTED0.05 / 1.00details
#21ACCEPTED0.03 / 1.00details
#22ACCEPTED0.04 / 1.00details
#23ACCEPTED0.07 / 1.00details
#24ACCEPTED0.06 / 1.00details
#25ACCEPTED0.05 / 1.00details
#26ACCEPTED0.06 / 1.00details
#27ACCEPTED0.04 / 1.00details
#28ACCEPTED0.07 / 1.00details
#29ACCEPTED0.05 / 1.00details
#30ACCEPTED0.05 / 1.00details
#31ACCEPTED0.07 / 1.00details
#32ACCEPTED0.12 / 1.00details
#33ACCEPTED0.07 / 1.00details
#34ACCEPTED0.09 / 1.00details
#35ACCEPTED0.12 / 1.00details
#36ACCEPTED0.11 / 1.00details
#37ACCEPTED0.08 / 1.00details
#38ACCEPTED0.10 / 1.00details
#39ACCEPTED0.07 / 1.00details
#40ACCEPTED0.11 / 1.00details
#41ACCEPTED0.11 / 1.00details
#42ACCEPTED0.08 / 1.00details
#43ACCEPTED0.06 / 1.00details
#44ACCEPTED0.10 / 1.00details
#45ACCEPTED0.08 / 1.00details
#46ACCEPTED0.07 / 1.00details

Code

#include <bits/stdc++.h>
#define F first
#define S second
#define X real()
#define Y imag()
using namespace std;
typedef long long ll;
typedef long double ld;

int get1(int i){
	cout<<"1 "<<i<<endl;
	int x;
	cin>>x;
	return x;
}

int get2(int i){
	cout<<"2 "<<i<<endl;
	int x;
	cin>>x;
	return x;
}

void ans(int i){
	cout<<"3 "<<i<<endl;
	exit(0);
}

vector<pair<int, int> > s1;
vector<pair<int, int> > s2;

int n,k;

void lol1(int x){
	if (x<1||x>n) return;
	int a=get1(x);
	s1.push_back({a, x});
}

void lol2(int x){
	if (x<1||x>n) return;
	int a=get2(x);
	s2.push_back({a, x});
}

void go(int x){
	int mi=1;
	int ma=n;
	while (mi<=ma){
		int mid=(mi+ma)/2;
		int k1=mid;
		int k2=k-mid+x;
		if (k1<1) mi=mid+1;
		else if(k1>n) ma=mid-1;
		else if(k2<1) ma=mid-1;
		else if(k2>n) mi=mid+1;
		else{
			int a=get1(k1);
			int b=get2(k2);
			s1.push_back({a, k1});
			s2.push_back({b, k2});
			if (a>b){
				mi=mid+1;
			}
			else if(a<b){
				ma=mid-1;
			}
			else{
				assert(0);
			}
		}
	}
	lol1(mi-1+x);
	lol1(mi+x);
	lol1(mi+1+x);
	
	lol2(k-mi-1-x);
	lol2(k-mi-x);
	lol2(k-mi-x+1);
}

int main(){
	cin>>n>>k;
	go(0);
	go(1);
	sort(s1.rbegin(), s1.rend());
	sort(s2.rbegin(), s2.rend());
	int h1=0;
	int h2=0;
	int i2=0;
	for (int i=0;i<(int)s1.size();i++){
		while (i2<(int)s2.size()&&s2[i2].F>s1[i].F){
			h2=max(h2, s2[i2].S);
			if (h1+h2==k){
				ans(s2[i2].F);
			}
			i2++;
		}
		h1=max(h1, s1[i].S);
		if (h1+h2==k){
			ans(s1[i].F);
		}
	}
	while (i2<(int)s2.size()){
		h2=max(h2, s2[i2].S);
		if (h1+h2==k){
			ans(s2[i2].F);
		}
		i2++;
	}
}

Test details

Test 1

Verdict: ACCEPTED

input
1 1
33
18
view   save

correct output
(no output)
view   save

user output
1 1
1 1
33
2 1
18
1 1
33
2 1
18
3 33
view   save

Test 2

Verdict: ACCEPTED

input
1 1
37
55
view   save

correct output
(no output)
view   save

user output
1 1
1 1
37
2 1
55
1 1
37
2 1
55
1 1
37
3 55
view   save

Test 3

Verdict: ACCEPTED

input
1 2
80
38
view   save

correct output
(no output)
view   save

user output
1 2
1 1
80
2 1
38
1 1
80
2 1
38
3 38
view   save

Test 4

Verdict: ACCEPTED

input
1 2
29
48
view   save

correct output
(no output)
view   save

user output
1 2
1 1
29
2 1
48
1 1
29
2 1
48
3 29
view   save

Test 5

Verdict: ACCEPTED

input
2 1
98 91
83 14
view   save

correct output
(no output)
view   save

user output
2 1
1 1
98
1 2
91
2 1
83
1 1
98
2 1
83
1 2
91
3 98
view   save

Test 6

Verdict: ACCEPTED

input
2 1
25 23
39 31
view   save

correct output
(no output)
view   save

user output
2 1
1 1
25
1 2
23
2 1
39
1 1
25
2 1
39
1 1
25
1 2
23
3 39
view   save

Test 7

Verdict: ACCEPTED

input
2 1
73 57
77 32
view   save

correct output
(no output)
view   save

user output
2 1
1 1
73
1 2
57
2 1
77
1 1
73
2 1
77
1 1
73
1 2
57
3 77
view   save

Test 8

Verdict: ACCEPTED

input
2 2
77 64
63 2
view   save

correct output
(no output)
view   save

user output
2 2
1 1
77
2 1
63
1 1
77
1 2
64
2 1
63
1 1
77
2 2
2
1 2
64
2 1
63
3 64
...
view   save

Test 9

Verdict: ACCEPTED

input
2 2
61 28
97 90
view   save

correct output
(no output)
view   save

user output
2 2
1 1
61
2 1
97
1 1
61
1 2
28
2 1
97
2 2
90
1 1
61
2 2
90
1 1
61
1 2
...
view   save

Test 10

Verdict: ACCEPTED

input
2 2
87 66
75 38
view   save

correct output
(no output)
view   save

user output
2 2
1 1
87
2 1
75
1 1
87
1 2
66
2 1
75
1 1
87
2 2
38
1 2
66
2 1
75
1 2
...
view   save

Test 11

Verdict: ACCEPTED

input
2 4
70 39
33 12
view   save

correct output
(no output)
view   save

user output
2 4
1 2
39
2 2
12
1 2
39
2 1
33
2 2
12
2 1
33
3 12
view   save

Test 12

Verdict: ACCEPTED

input
2 4
47 20
67 52
view   save

correct output
(no output)
view   save

user output
2 4
1 2
20
2 2
52
1 1
47
1 2
20
2 1
67
2 2
52
2 1
67
3 20
view   save

Test 13

Verdict: ACCEPTED

input
2 4
54 20
90 1
view   save

correct output
(no output)
view   save

user output
2 4
1 2
20
2 2
1
1 2
20
2 1
90
2 2
1
2 1
90
3 1
view   save

Test 14

Verdict: ACCEPTED

input
2 4
68 66
64 61
view   save

correct output
(no output)
view   save

user output
2 4
1 2
66
2 2
61
1 2
66
2 1
64
2 2
61
2 1
64
3 61
view   save

Test 15

Verdict: ACCEPTED

input
2 4
35 27
68 66
view   save

correct output
(no output)
view   save

user output
2 4
1 2
27
2 2
66
1 1
35
1 2
27
2 1
68
2 2
66
2 1
68
3 27
view   save

Test 16

Verdict: ACCEPTED

input
2 4
51 32
25 18
view   save

correct output
(no output)
view   save

user output
2 4
1 2
32
2 2
18
1 2
32
2 1
25
2 2
18
2 1
25
3 18
view   save

Test 17

Verdict: ACCEPTED

input
10 1
100 78 74 72 71 70 64 57 43 39
29 26 22 21 15 13 11 9 4 3
view   save

correct output
(no output)
view   save

user output
10 1
1 1
100
1 2
78
2 1
29
1 1
100
2 1
29
1 2
78
1 3
74
1 4
72
3 100
view   save

Test 18

Verdict: ACCEPTED

input
10 1
56 52 49 48 17 14 13 12 9 3
99 98 84 80 78 75 69 67 66 62
view   save

correct output
(no output)
view   save

user output
10 1
1 1
56
1 2
52
2 1
99
1 1
56
2 1
99
1 1
56
1 2
52
1 3
49
3 99
view   save

Test 19

Verdict: ACCEPTED

input
10 1
91 86 73 65 53 42 28 14 13 6
100 77 70 58 52 41 35 33 17 9
view   save

correct output
(no output)
view   save

user output
10 1
1 1
91
1 2
86
2 1
100
1 1
91
2 1
100
1 1
91
1 2
86
1 3
73
3 100
view   save

Test 20

Verdict: ACCEPTED

input
10 2
88 87 69 68 64 63 57 55 54 51
50 36 35 31 27 22 15 14 8 1
view   save

correct output
(no output)
view   save

user output
10 2
1 1
88
2 1
50
1 1
88
1 2
87
1 3
69
2 1
50
1 2
87
2 1
50
1 3
69
1 4
...
view   save

Test 21

Verdict: ACCEPTED

input
10 2
31 28 26 16 13 9 8 6 5 2
95 87 80 78 76 65 59 53 41 40
view   save

correct output
(no output)
view   save

user output
10 2
1 1
31
2 1
95
1 1
31
1 2
28
2 1
95
2 2
87
1 2
28
2 1
95
1 1
31
2 2
...
view   save

Test 22

Verdict: ACCEPTED

input
10 2
98 93 89 68 61 41 32 30 23 4
96 86 76 75 73 58 35 29 26 7
view   save

correct output
(no output)
view   save

user output
10 2
1 1
98
2 1
96
1 1
98
1 2
93
1 3
89
2 1
96
1 2
93
2 1
96
1 1
98
2 2
...
view   save

Test 23

Verdict: ACCEPTED

input
10 10
99 86 85 84 82 81 77 74 71 69
45 27 26 24 21 18 15 13 11 4
view   save

correct output
(no output)
view   save

user output
10 10
1 5
82
2 5
21
1 8
74
2 2
27
1 9
71
2 1
45
1 9
71
1 10
69
2 1
45
1 5
...
view   save

Test 24

Verdict: ACCEPTED

input
10 10
46 41 40 28 24 23 18 14 8 4
100 94 90 85 78 77 75 68 59 54
view   save

correct output
(no output)
view   save

user output
10 10
1 5
24
2 5
78
1 2
41
2 8
68
1 1
46
2 9
59
1 1
46
1 2
41
2 8
68
2 9
...
view   save

Test 25

Verdict: ACCEPTED

input
10 10
91 80 68 39 38 37 31 30 7 1
100 95 87 71 67 41 33 18 17 11
view   save

correct output
(no output)
view   save

user output
10 10
1 5
38
2 5
67
1 2
80
2 8
18
1 3
68
2 7
33
1 4
39
2 6
41
1 3
68
1 4
...
view   save

Test 26

Verdict: ACCEPTED

input
10 18
87 86 85 80 79 74 64 60 59 47
43 39 37 34 29 27 26 16 6 5
view   save

correct output
(no output)
view   save

user output
10 18
1 8
60
2 10
5
1 9
59
2 9
6
1 10
47
2 8
16
1 10
47
2 6
27
2 7
26
2 8
...
view   save

Test 27

Verdict: ACCEPTED

input
10 18
54 48 42 38 28 27 22 19 15 5
100 96 91 84 79 73 72 64 63 60
view   save

correct output
(no output)
view   save

user output
10 18
1 8
19
2 10
60
1 7
22
1 8
19
1 9
15
2 9
63
2 10
60
1 9
15
2 10
60
1 9
...
view   save

Test 28

Verdict: ACCEPTED

input
10 18
98 87 84 71 62 59 45 38 34 10
89 86 77 73 69 67 46 32 31 6
view   save

correct output
(no output)
view   save

user output
10 18
1 8
38
2 10
6
1 9
34
2 9
31
1 10
10
2 8
32
1 9
34
1 10
10
2 7
46
2 8
...
view   save

Test 29

Verdict: ACCEPTED

input
10 20
91 90 86 79 73 71 67 65 61 56
46 44 36 25 18 11 6 5 3 1
view   save

correct output
(no output)
view   save

user output
10 20
1 10
56
2 10
1
1 10
56
2 8
5
2 9
3
2 10
1
2 7
6
2 8
5
2 9
3
3 1
...
view   save

Test 30

Verdict: ACCEPTED

input
10 20
56 48 47 46 35 28 26 18 10 3
95 90 89 85 79 77 67 66 62 59
view   save

correct output
(no output)
view   save

user output
10 20
1 10
3
2 10
59
1 9
10
1 10
3
2 9
62
2 10
59
2 7
67
2 8
66
2 9
62
3 3
...
view   save

Test 31

Verdict: ACCEPTED

input
10 20
81 80 79 76 71 63 57 34 29 24
96 70 61 59 52 36 22 5 4 2
view   save

correct output
(no output)
view   save

user output
10 20
1 10
24
2 10
2
1 10
24
2 8
5
2 9
4
2 10
2
2 7
22
2 8
5
2 9
4
3 2
...
view   save

Test 32

Verdict: ACCEPTED

input
100000 1
999998453 999997813 999980598 ...
view   save

correct output
(no output)
view   save

user output
100000 1
1 1
999998453
1 2
999997813
2 1
501385639
1 1
999998453
2 1
501385639
1 2
999997813
1 3
999980598
1 4
999975871
3 999998453
view   save

Test 33

Verdict: ACCEPTED

input
100000 1
498482877 498480230 498478078 ...
view   save

correct output
(no output)
view   save

user output
100000 1
1 1
498482877
1 2
498480230
2 1
999998503
1 1
498482877
2 1
999998503
1 1
498482877
1 2
498480230
1 3
498478078
3 999998503
view   save

Test 34

Verdict: ACCEPTED

input
100000 1
999986977 999979153 999972315 ...
view   save

correct output
(no output)
view   save

user output
100000 1
1 1
999986977
1 2
999979153
2 1
999999598
1 1
999986977
2 1
999999598
1 1
999986977
1 2
999979153
1 3
999972315
3 999999598
view   save

Test 35

Verdict: ACCEPTED

input
100000 20000
999990977 999974610 999971985 ...
view   save

correct output
(no output)
view   save

user output
100000 20000
1 12500
937576459
2 7500
463000603
1 18750
907101094
2 1250
493968371
1 19531
903266138
2 469
497745673
1 19921
901224483
2 79
499689072
1 19969
901004969
2 31
...
view   save

Test 36

Verdict: ACCEPTED

input
100000 20000
501434689 501431546 501422578 ...
view   save

correct output
(no output)
view   save

user output
100000 20000
1 12500
438807451
2 7500
962584594
1 6250
470380198
2 13750
931352788
1 3125
485722315
2 16875
915645506
1 1562
493569624
2 18438
907476329
1 781
497595297
2 19219
...
view   save

Test 37

Verdict: ACCEPTED

input
100000 20000
999995686 999994228 999993000 ...
view   save

correct output
(no output)
view   save

user output
100000 20000
1 12500
875396528
2 7500
924929459
1 6250
937262194
2 13750
862246733
1 9375
906945565
2 10625
893291467
1 10937
891038610
2 9063
909358436
1 10156
898995914
2 9844
...
view   save

Test 38

Verdict: ACCEPTED

input
100000 100000
999992342 999991618 999988963 ...
view   save

correct output
(no output)
view   save

user output
100000 100000
1 50000
750743799
2 50000
249323673
1 75000
625515277
2 25000
374706536
1 87500
563173909
2 12500
438051434
1 93750
531491923
2 6250
469360554
1 96875
515984762
2 3125
...
view   save

Test 39

Verdict: ACCEPTED

input
100000 100000
500754694 500749114 500734428 ...
view   save

correct output
(no output)
view   save

user output
100000 100000
1 50000
249818189
2 50000
750771880
1 25000
375669285
2 75000
625932194
1 12500
437757417
2 87500
563051829
1 6250
468735385
2 93750
531749009
1 3125
484761011
2 96875
...
view   save

Test 40

Verdict: ACCEPTED

input
100000 100000
999988713 999962210 999939592 ...
view   save

correct output
(no output)
view   save

user output
100000 100000
1 50000
499530532
2 50000
499176370
1 75000
249058143
2 25000
748266089
1 62500
375103265
2 37500
623501116
1 56250
436718042
2 43750
561558980
1 53125
467956917
2 46875
...
view   save

Test 41

Verdict: ACCEPTED

input
100000 180000
999994001 999991970 999991811 ...
view   save

correct output
(no output)
view   save

user output
100000 180000
1 87500
561931156
2 92500
38062922
1 93750
530826401
2 86250
68740791
1 96875
515587887
2 83125
84541361
1 98438
507964171
2 81562
92278717
1 99219
504126154
2 80781
...
view   save

Test 42

Verdict: ACCEPTED

input
100000 180000
499560736 499555703 499549265 ...
view   save

correct output
(no output)
view   save

user output
100000 180000
1 87500
61253256
2 92500
536762910
1 81250
91911398
2 98750
505995181
1 80468
95835246
2 99532
501942427
1 80077
97765558
2 99923
499972740
1 80028
97999715
2 99972
...
view   save

Test 43

Verdict: ACCEPTED

input
100000 180000
999996507 999993660 999990414 ...
view   save

correct output
(no output)
view   save

user output
100000 180000
1 87500
122903262
2 92500
74404464
1 93750
61500684
2 86250
135394115
1 90625
91903682
2 89375
105052579
1 89062
107343184
2 90938
89923312
1 89843
99377257
2 90157
...
view   save

Test 44

Verdict: ACCEPTED

input
100000 200000
999987384 999983480 999981446 ...
view   save

correct output
(no output)
view   save

user output
100000 200000
1 100000
499647604
2 100000
16029
1 100000
499647604
2 99998
45559
2 99999
33623
2 100000
16029
2 99997
48774
2 99998
45559
2 99999
33623
3 16029
...
view   save

Test 45

Verdict: ACCEPTED

input
100000 200000
500801844 500800718 500792295 ...
view   save

correct output
(no output)
view   save

user output
100000 200000
1 100000
8183
2 100000
500805123
1 99999
8766
1 100000
8183
2 99999
500806597
2 100000
500805123
2 99997
500810882
2 99998
500809902
2 99999
500806597
3 8183
...
view   save

Test 46

Verdict: ACCEPTED

input
100000 200000
999984710 999974756 999965175 ...
view   save

correct output
(no output)
view   save

user output
100000 200000
1 100000
13769
2 100000
2005
1 100000
13769
2 99998
6162
2 99999
5656
2 100000
2005
2 99997
8435
2 99998
6162
2 99999
5656
3 2005
...
view   save