CSES - HIIT Open 2017 - Results
Submission details
Task:Contest
Sender:Proudly div 2
Submission time:2017-05-27 15:00:10 +0300
Language:Scala
Status:READY
Result:
Test results
testverdicttime
#1ACCEPTED0.49 sdetails
#2ACCEPTED0.46 sdetails
#3ACCEPTED0.50 sdetails
#4ACCEPTED0.48 sdetails
#5ACCEPTED0.47 sdetails
#6ACCEPTED0.47 sdetails
#7ACCEPTED0.49 sdetails
#8ACCEPTED0.46 sdetails
#9ACCEPTED0.47 sdetails
#10ACCEPTED0.46 sdetails
#11ACCEPTED0.48 sdetails
#12ACCEPTED0.44 sdetails
#13--details
#14ACCEPTED0.43 sdetails
#15ACCEPTED0.48 sdetails
#16ACCEPTED0.48 sdetails
#17ACCEPTED0.44 sdetails
#18ACCEPTED0.52 sdetails
#19ACCEPTED0.48 sdetails
#20ACCEPTED0.42 sdetails
#21ACCEPTED0.46 sdetails
#22ACCEPTED0.44 sdetails
#23ACCEPTED0.45 sdetails
#24ACCEPTED0.49 sdetails
#25ACCEPTED0.45 sdetails
#26ACCEPTED0.46 sdetails
#27ACCEPTED0.53 sdetails
#28--details
#29ACCEPTED0.48 sdetails
#30ACCEPTED0.47 sdetails
#31--details
#32ACCEPTED0.56 sdetails
#33ACCEPTED0.54 sdetails
#34ACCEPTED0.47 sdetails
#35ACCEPTED0.47 sdetails
#36ACCEPTED0.51 sdetails
#370.49 sdetails
#38ACCEPTED0.51 sdetails
#39ACCEPTED0.53 sdetails
#400.53 sdetails
#41ACCEPTED0.48 sdetails
#42ACCEPTED0.50 sdetails
#430.54 sdetails
#44ACCEPTED0.49 sdetails
#45ACCEPTED0.51 sdetails
#460.51 sdetails

Code

import scala.io.StdIn.readLine
/**
 * @author hiit10
 */
object c extends App {
  val in = readLine().split(" ")
  val n = in(0).toInt
  val k = in(1).toInt
  val pariton = k % 2 == 1
  var (a1, l1) = (1, n)
  var (a2, l2) = (1, n)
  if(k < n){
    l1 = k
    l2 = k
  }
  def solve(){
    println("1 " + a1)
    var max1 = readLine().toInt
    println("2 " + a2)
    var max2 = readLine().toInt
    println("1 " + l1)
    var min1 = readLine().toInt
    println("2 " + l2)
    var min2 = readLine().toInt
    
    //checks
    if(min1 >= max2){
      if(n >= k){
        println("1 " + k)
        val ret = readLine().toInt
        println("3 "+ ret)
        return
      }else{
        println("2 " + (k - n))
        val ret = readLine().toInt
        println("3 " + ret)
        return
      }
    }else if(min2 >= max1){
      if(n >= k){
        println("2 " + k)
        val ret = readLine().toInt
        println("3 "+ ret)
        return
      }else{
        println("1 " + (k - n))
        val ret = readLine().toInt
        println("3 " + ret)
        return
      }
    }
    var ind1 = (a1 + l1) / 2
    var ind2 = (a2 + l2) / 2
    println("1 " + ind1)
    var cand1 = readLine().toInt
    println("2 " + ind2)
    var cand2 = readLine().toInt
    if(cand1 == cand2){
      println("3 " + cand1)
      return
    }else if(cand1 > cand2){
      a1 = ind1
      l2 = ind2
    }else{
      a2 = ind2
      l1 = ind1
    }
    while(true){
      if(l1 - a1 < 6 && l2 - a2 < 6){
        val values = scala.collection.mutable.ArrayBuffer[Int]()
        for(i <- a1 to l1){
          println("1 " + i)
          values += readLine().toInt
        }
        for(i <- a2 to l2){
          println("2 " + i)
          values += readLine().toInt
        }
        val sort = values.distinct.sorted.reverse
        println("3 " + sort(k - a1 - a2 + 1))
        return
      }
      ind1 = (a1 + l2)/2
      ind2 = (a2 + l2)/2
      println("1 " + ind1)
      cand1 = readLine().toInt
      println("2 " + ind2)
      cand2 = readLine().toInt
      if(cand1 == cand2){
        println("3 " + cand1)
        return
      }else if(cand1 > cand2){
        a1 = ind1
        l2 = ind2
      }else{
        a2 = ind2
        l1 = ind1
      }
    }
  }
  solve()
}

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
2 1
83
...

Test 6

Verdict: ACCEPTED

input
2 1
25 23
39 31

correct output
(empty)

user output
2 1
1 1
25
2 1
39
...

Test 7

Verdict: ACCEPTED

input
2 1
73 57
77 32

correct output
(empty)

user output
2 1
1 1
73
2 1
77
...

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 1
70
2 1
33
...

Test 12

Verdict: ACCEPTED

input
2 4
47 20
67 52

correct output
(empty)

user output
2 4
1 1
47
2 1
67
...

Test 13

Verdict:

input
2 4
54 20
90 1

correct output
(empty)

user output
(empty)

Test 14

Verdict: ACCEPTED

input
2 4
68 66
64 61

correct output
(empty)

user output
2 4
1 1
68
2 1
64
...

Test 15

Verdict: ACCEPTED

input
2 4
35 27
68 66

correct output
(empty)

user output
2 4
1 1
35
2 1
68
...

Test 16

Verdict: ACCEPTED

input
2 4
51 32
25 18

correct output
(empty)

user output
2 4
1 1
51
2 1
25
...

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
2 1
29
...

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
2 1
99
...

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
2 1
100
...

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

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

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 1
99
2 1
45
...

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 1
46
2 1
100
...

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 1
91
2 1
100
...
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 1
87
2 1
43
...

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 1
54
2 1
100
...

Test 28

Verdict:

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
(empty)

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 1
91
2 1
46
...

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 1
56
2 1
95
...

Test 31

Verdict:

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
(empty)

Test 32

Verdict: ACCEPTED

input
100000 1
999998453 999997813 999980598 ...

correct output
(empty)

user output
100000 1
1 1
999998453
2 1
501385639
...
Truncated

Test 33

Verdict: ACCEPTED

input
100000 1
498482877 498480230 498478078 ...

correct output
(empty)

user output
100000 1
1 1
498482877
2 1
999998503
...
Truncated

Test 34

Verdict: ACCEPTED

input
100000 1
999986977 999979153 999972315 ...

correct output
(empty)

user output
100000 1
1 1
999986977
2 1
999999598
...
Truncated

Test 35

Verdict: ACCEPTED

input
100000 20000
999990977 999974610 999971985 ...

correct output
(empty)

user output
100000 20000
1 1
999990977
2 1
500136081
...
Truncated

Test 36

Verdict: ACCEPTED

input
100000 20000
501434689 501431546 501422578 ...

correct output
(empty)

user output
100000 20000
1 1
501434689
2 1
999986337
...
Truncated

Test 37

Verdict:

input
100000 20000
999995686 999994228 999993000 ...

correct output
(empty)

user output
100000 20000
1 1
999995686
2 1
999994430
...
Truncated

Test 38

Verdict: ACCEPTED

input
100000 100000
999992342 999991618 999988963 ...

correct output
(empty)

user output
100000 100000
1 1
999992342
2 1
500660526
...
Truncated

Test 39

Verdict: ACCEPTED

input
100000 100000
500754694 500749114 500734428 ...

correct output
(empty)

user output
100000 100000
1 1
500754694
2 1
999995766
...
Truncated

Test 40

Verdict:

input
100000 100000
999988713 999962210 999939592 ...

correct output
(empty)

user output
100000 100000
1 1
999988713
2 1
999995889
...
Truncated

Test 41

Verdict: ACCEPTED

input
100000 180000
999994001 999991970 999991811 ...

correct output
(empty)

user output
100000 180000
1 1
999994001
2 1
500169086
...
Truncated

Test 42

Verdict: ACCEPTED

input
100000 180000
499560736 499555703 499549265 ...

correct output
(empty)

user output
100000 180000
1 1
499560736
2 1
999984233
...
Truncated

Test 43

Verdict:

input
100000 180000
999996507 999993660 999990414 ...

correct output
(empty)

user output
100000 180000
1 1
999996507
2 1
999994276
...
Truncated

Test 44

Verdict: ACCEPTED

input
100000 200000
999987384 999983480 999981446 ...

correct output
(empty)

user output
100000 200000
1 1
999987384
2 1
499634848
...
Truncated

Test 45

Verdict: ACCEPTED

input
100000 200000
500801844 500800718 500792295 ...

correct output
(empty)

user output
100000 200000
1 1
500801844
2 1
999998035
...
Truncated

Test 46

Verdict:

input
100000 200000
999984710 999974756 999965175 ...

correct output
(empty)

user output
100000 200000
1 1
999984710
2 1
999989873
...
Truncated