1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | import java.io.BufferedReader import java.io.InputStreamReader fun main(args: Array<String>) { val br=BufferedReader(InputStreamReader(System.`in`)) val (m,n,l)=br.readLine()!!.split(" ").map { it.toInt() } val saro=br.readLine()!!.split(" ").map { it.toInt() }.sorted() val animal=Array(n){ val (x,y)=br.readLine()!!.split(" ").map { it.toInt() } Pair(x,y) } var res=0 for(i in 0 until n){ val (x,y)=animal[i] if(y>l) continue // y값이 l보다 커지면 사대의 x좌표에 상관없이 도달 할 수 없음. var left=0 var right=m-1 while(left<=right){ // 동물의 x좌표를 가지고 사대를 이진탐색 val mid=(left+right)/2 if(saro[mid] in x-(l-y)..x+(l-y)){ // 동물의 x좌표에서 양옆으로 (l-y)만큼 떨어져있으면 //사냥가능하다 res++ break } if(saro[mid]<x-(y-l)) left=mid+1 else right=mid-1 } } println(res) } |
'BOJ(백준)' 카테고리의 다른 글
[BOJ] 백준 11066번 파일 합치기 by Kotlin (0) | 2018.11.21 |
---|---|
[BOJ] 백준 5397번 키로거 by Kotlin (0) | 2018.11.20 |
[BOJ] 2170번 선 긋기 by Kotlin (0) | 2018.11.13 |
[BOJ] 1017번 소수 쌍 by Kotlin (0) | 2018.10.07 |
[BOJ] 1671번 상어의 저녁식사 by Kotlin (0) | 2018.10.06 |