Skip to content

Commit 349e9b0

Browse files
authored
[20250219] BOJ / 골드4 / 사냥꾼 / 이강현
1 parent 1cb15c2 commit 349e9b0

File tree

1 file changed

+67
-0
lines changed

1 file changed

+67
-0
lines changed
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
```java
2+
import java.util.*;
3+
import java.io.*;
4+
5+
public class Main {
6+
public static void main(String[] args) throws Exception{
7+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
8+
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
9+
StringTokenizer st = new StringTokenizer(br.readLine());
10+
int M = Integer.parseInt(st.nextToken());
11+
int N = Integer.parseInt(st.nextToken());
12+
int L = Integer.parseInt(st.nextToken());
13+
int[] Ms = new int[M];
14+
st = new StringTokenizer(br.readLine());
15+
for (int i = 0; i < M; i++) {
16+
Ms[i] = Integer.parseInt(st.nextToken());
17+
}
18+
List<int[]> Ns = new ArrayList<>(N);
19+
for (int i = 0; i < N; i++) {
20+
st = new StringTokenizer(br.readLine());
21+
int x = Integer.parseInt(st.nextToken());
22+
int y = Integer.parseInt(st.nextToken());
23+
Ns.add(new int[]{x,y});
24+
}
25+
26+
Arrays.sort(Ms);
27+
28+
int count=0;
29+
for (int[] i:Ns) {
30+
int state = Arrays.binarySearch(Ms, i[0]);
31+
if(state>=0){
32+
if(i[1]<=L){
33+
count++;
34+
}
35+
36+
}else{
37+
int temp = -(state+1);
38+
int lefttemp = temp-1;
39+
int righttemp = temp;
40+
if(lefttemp<0){
41+
if((long)Ms[righttemp] - i[0] + i[1] <= (long)L){
42+
count++;
43+
}
44+
}else if(righttemp==Ms.length){
45+
if((long)i[0]-Ms[lefttemp] + i[1] <= (long)L){
46+
count++;
47+
}
48+
49+
}else{
50+
if((long)Ms[righttemp]-i[0]>(long)i[0]-Ms[lefttemp]){
51+
if((long)i[0]-Ms[lefttemp] + i[1] <= (long)L){
52+
count++;
53+
}
54+
}else{
55+
if((long)Ms[righttemp] - i[0] + i[1] <= (long)L){
56+
count++;
57+
}
58+
}
59+
}
60+
}
61+
}
62+
bw.write(String.valueOf(count));
63+
bw.flush();
64+
}
65+
}
66+
67+
```

0 commit comments

Comments
 (0)