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 |