Task: | Contest |
Sender: | Game of Nolife |
Submission time: | 2017-05-27 11:45:49 +0300 |
Language: | C++ |
Status: | READY |
Result: | ACCEPTED |
test | verdict | time | |
---|---|---|---|
#1 | ACCEPTED | 0.03 s | details |
#2 | ACCEPTED | 0.06 s | details |
#3 | ACCEPTED | 0.04 s | details |
#4 | ACCEPTED | 0.07 s | details |
#5 | ACCEPTED | 0.06 s | details |
#6 | ACCEPTED | 0.08 s | details |
#7 | ACCEPTED | 0.06 s | details |
#8 | ACCEPTED | 0.05 s | details |
#9 | ACCEPTED | 0.05 s | details |
#10 | ACCEPTED | 0.07 s | details |
#11 | ACCEPTED | 0.07 s | details |
#12 | ACCEPTED | 0.05 s | details |
#13 | ACCEPTED | 0.03 s | details |
#14 | ACCEPTED | 0.06 s | details |
#15 | ACCEPTED | 0.07 s | details |
#16 | ACCEPTED | 0.04 s | details |
#17 | ACCEPTED | 0.07 s | details |
#18 | ACCEPTED | 0.06 s | details |
#19 | ACCEPTED | 0.06 s | details |
#20 | ACCEPTED | 0.05 s | details |
#21 | ACCEPTED | 0.03 s | details |
#22 | ACCEPTED | 0.04 s | details |
#23 | ACCEPTED | 0.07 s | details |
#24 | ACCEPTED | 0.06 s | details |
#25 | ACCEPTED | 0.05 s | details |
#26 | ACCEPTED | 0.06 s | details |
#27 | ACCEPTED | 0.04 s | details |
#28 | ACCEPTED | 0.07 s | details |
#29 | ACCEPTED | 0.05 s | details |
#30 | ACCEPTED | 0.05 s | details |
#31 | ACCEPTED | 0.07 s | details |
#32 | ACCEPTED | 0.12 s | details |
#33 | ACCEPTED | 0.07 s | details |
#34 | ACCEPTED | 0.09 s | details |
#35 | ACCEPTED | 0.12 s | details |
#36 | ACCEPTED | 0.11 s | details |
#37 | ACCEPTED | 0.08 s | details |
#38 | ACCEPTED | 0.10 s | details |
#39 | ACCEPTED | 0.07 s | details |
#40 | ACCEPTED | 0.11 s | details |
#41 | ACCEPTED | 0.11 s | details |
#42 | ACCEPTED | 0.08 s | details |
#43 | ACCEPTED | 0.06 s | details |
#44 | ACCEPTED | 0.10 s | details |
#45 | ACCEPTED | 0.08 s | details |
#46 | ACCEPTED | 0.07 s | details |
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 |
correct output |
---|
(empty) |
user output |
---|
1 1 1 1 33 2 1 18 ... |
Test 2
Verdict: ACCEPTED
input |
---|
1 1 37 55 |
correct output |
---|
(empty) |
user output |
---|
1 1 1 1 37 2 1 55 ... |
Test 3
Verdict: ACCEPTED
input |
---|
1 2 80 38 |
correct output |
---|
(empty) |
user output |
---|
1 2 1 1 80 2 1 38 ... |
Test 4
Verdict: ACCEPTED
input |
---|
1 2 29 48 |
correct output |
---|
(empty) |
user output |
---|
1 2 1 1 29 2 1 48 ... |
Test 5
Verdict: ACCEPTED
input |
---|
2 1 98 91 83 14 |
correct output |
---|
(empty) |
user output |
---|
2 1 1 1 98 1 2 91 ... |
Test 6
Verdict: ACCEPTED
input |
---|
2 1 25 23 39 31 |
correct output |
---|
(empty) |
user output |
---|
2 1 1 1 25 1 2 23 ... |
Test 7
Verdict: ACCEPTED
input |
---|
2 1 73 57 77 32 |
correct output |
---|
(empty) |
user output |
---|
2 1 1 1 73 1 2 57 ... |
Test 8
Verdict: ACCEPTED
input |
---|
2 2 77 64 63 2 |
correct output |
---|
(empty) |
user output |
---|
2 2 1 1 77 2 1 63 ... |
Test 9
Verdict: ACCEPTED
input |
---|
2 2 61 28 97 90 |
correct output |
---|
(empty) |
user output |
---|
2 2 1 1 61 2 1 97 ... |
Test 10
Verdict: ACCEPTED
input |
---|
2 2 87 66 75 38 |
correct output |
---|
(empty) |
user output |
---|
2 2 1 1 87 2 1 75 ... |
Test 11
Verdict: ACCEPTED
input |
---|
2 4 70 39 33 12 |
correct output |
---|
(empty) |
user output |
---|
2 4 1 2 39 2 2 12 ... |
Test 12
Verdict: ACCEPTED
input |
---|
2 4 47 20 67 52 |
correct output |
---|
(empty) |
user output |
---|
2 4 1 2 20 2 2 52 ... |
Test 13
Verdict: ACCEPTED
input |
---|
2 4 54 20 90 1 |
correct output |
---|
(empty) |
user output |
---|
2 4 1 2 20 2 2 1 ... |
Test 14
Verdict: ACCEPTED
input |
---|
2 4 68 66 64 61 |
correct output |
---|
(empty) |
user output |
---|
2 4 1 2 66 2 2 61 ... |
Test 15
Verdict: ACCEPTED
input |
---|
2 4 35 27 68 66 |
correct output |
---|
(empty) |
user output |
---|
2 4 1 2 27 2 2 66 ... |
Test 16
Verdict: ACCEPTED
input |
---|
2 4 51 32 25 18 |
correct output |
---|
(empty) |
user output |
---|
2 4 1 2 32 2 2 18 ... |
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 |
correct output |
---|
(empty) |
user output |
---|
10 1 1 1 100 1 2 78 ... |
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 |
correct output |
---|
(empty) |
user output |
---|
10 1 1 1 56 1 2 52 ... |
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 |
correct output |
---|
(empty) |
user output |
---|
10 1 1 1 91 1 2 86 ... |
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 |
correct output |
---|
(empty) |
user output |
---|
10 2 1 1 88 2 1 50 ... |
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 |
correct output |
---|
(empty) |
user output |
---|
10 2 1 1 31 2 1 95 ... Truncated |
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 |
correct output |
---|
(empty) |
user output |
---|
10 2 1 1 98 2 1 96 ... Truncated |
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 |
correct output |
---|
(empty) |
user output |
---|
10 10 1 5 82 2 5 21 ... Truncated |
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 |
correct output |
---|
(empty) |
user output |
---|
10 10 1 5 24 2 5 78 ... Truncated |
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 |
correct output |
---|
(empty) |
user output |
---|
10 10 1 5 38 2 5 67 ... Truncated |
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 |
correct output |
---|
(empty) |
user output |
---|
10 18 1 8 60 2 10 5 ... Truncated |
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 |
correct output |
---|
(empty) |
user output |
---|
10 18 1 8 19 2 10 60 ... Truncated |
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 |
correct output |
---|
(empty) |
user output |
---|
10 18 1 8 38 2 10 6 ... Truncated |
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 |
correct output |
---|
(empty) |
user output |
---|
10 20 1 10 56 2 10 1 ... |
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 |
correct output |
---|
(empty) |
user output |
---|
10 20 1 10 3 2 10 59 ... |
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 |
correct output |
---|
(empty) |
user output |
---|
10 20 1 10 24 2 10 2 ... |
Test 32
Verdict: ACCEPTED
input |
---|
100000 1 999998453 999997813 999980598 ... |
correct output |
---|
(empty) |
user output |
---|
100000 1 1 1 999998453 1 2 999997813 ... Truncated |
Test 33
Verdict: ACCEPTED
input |
---|
100000 1 498482877 498480230 498478078 ... |
correct output |
---|
(empty) |
user output |
---|
100000 1 1 1 498482877 1 2 498480230 ... Truncated |
Test 34
Verdict: ACCEPTED
input |
---|
100000 1 999986977 999979153 999972315 ... |
correct output |
---|
(empty) |
user output |
---|
100000 1 1 1 999986977 1 2 999979153 ... Truncated |
Test 35
Verdict: ACCEPTED
input |
---|
100000 20000 999990977 999974610 999971985 ... |
correct output |
---|
(empty) |
user output |
---|
100000 20000 1 12500 937576459 2 7500 463000603 ... Truncated |
Test 36
Verdict: ACCEPTED
input |
---|
100000 20000 501434689 501431546 501422578 ... |
correct output |
---|
(empty) |
user output |
---|
100000 20000 1 12500 438807451 2 7500 962584594 ... Truncated |
Test 37
Verdict: ACCEPTED
input |
---|
100000 20000 999995686 999994228 999993000 ... |
correct output |
---|
(empty) |
user output |
---|
100000 20000 1 12500 875396528 2 7500 924929459 ... Truncated |
Test 38
Verdict: ACCEPTED
input |
---|
100000 100000 999992342 999991618 999988963 ... |
correct output |
---|
(empty) |
user output |
---|
100000 100000 1 50000 750743799 2 50000 249323673 ... Truncated |
Test 39
Verdict: ACCEPTED
input |
---|
100000 100000 500754694 500749114 500734428 ... |
correct output |
---|
(empty) |
user output |
---|
100000 100000 1 50000 249818189 2 50000 750771880 ... Truncated |
Test 40
Verdict: ACCEPTED
input |
---|
100000 100000 999988713 999962210 999939592 ... |
correct output |
---|
(empty) |
user output |
---|
100000 100000 1 50000 499530532 2 50000 499176370 ... Truncated |
Test 41
Verdict: ACCEPTED
input |
---|
100000 180000 999994001 999991970 999991811 ... |
correct output |
---|
(empty) |
user output |
---|
100000 180000 1 87500 561931156 2 92500 38062922 ... Truncated |
Test 42
Verdict: ACCEPTED
input |
---|
100000 180000 499560736 499555703 499549265 ... |
correct output |
---|
(empty) |
user output |
---|
100000 180000 1 87500 61253256 2 92500 536762910 ... Truncated |
Test 43
Verdict: ACCEPTED
input |
---|
100000 180000 999996507 999993660 999990414 ... |
correct output |
---|
(empty) |
user output |
---|
100000 180000 1 87500 122903262 2 92500 74404464 ... Truncated |
Test 44
Verdict: ACCEPTED
input |
---|
100000 200000 999987384 999983480 999981446 ... |
correct output |
---|
(empty) |
user output |
---|
100000 200000 1 100000 499647604 2 100000 16029 ... Truncated |
Test 45
Verdict: ACCEPTED
input |
---|
100000 200000 500801844 500800718 500792295 ... |
correct output |
---|
(empty) |
user output |
---|
100000 200000 1 100000 8183 2 100000 500805123 ... Truncated |
Test 46
Verdict: ACCEPTED
input |
---|
100000 200000 999984710 999974756 999965175 ... |
correct output |
---|
(empty) |
user output |
---|
100000 200000 1 100000 13769 2 100000 2005 ... Truncated |