| 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 |
