// ==========================================
// 1번 문제
// lower_bound / upper_bound 기초
// ==========================================

/*

[문제]

오름차순으로 정렬된 수열이 주어진다.

각 질문마다:
L 이상 R 이하인 숫자의 개수를 출력하여라.

[입력]

5
1 4 6 8 10
3
1 6
5 9
2 2

[출력]

3
2
0

[힌트]

upper_bound - lower_bound 사용

*/


// ==========================================
// 2번 문제
// 거리 K 이하 학생 수 구하기
// ==========================================

/*

[문제]

학생 N명의 집 좌표가 주어진다.

각 학생마다:
거리 차이가 K 이하인 학생 수를 출력하여라.

자기 자신은 제외한다.

[입력]

5 3
1 4 6 8 12

[출력]

1 2 2 1 0

[힌트]

현재 학생 x라면:

x-K 이상
x+K 이하

범위를 이분탐색으로 찾기

*/


// ==========================================
// 3번 문제
// 구조체 + 정렬 + 학교별 저장
// ==========================================

/*

[문제]

학생들의 좌표와 학교 번호가 주어진다.

각 학교별 학생 좌표를 오름차순 출력하여라.

[입력]

6
10 2
3 1
15 2
7 1
20 3
5 1

[출력]

school 1 : 3 5 7
school 2 : 10 15
school 3 : 20

[힌트]

vector<vector<int>>
사용

*/


// ==========================================
// 4번 문제
// KOI 축소판 (최종 연습)
// ==========================================

/*

[문제]

학생들의 집 좌표와 학교 번호가 주어진다.

- 같은 학교:
거리 <= K1

- 다른 학교:
거리 <= K2

일 때 각 학생의 친구 수를 출력하여라.

[입력]

5 5 2
1 1
3 2
6 1
8 2
10 1

[출력]

2 1 2 1 2

[힌트]

1.
전체 학생 기준 K2 친구 수 계산

2.
같은 학교 학생들 중
K2 기준 제거

3.
같은 학교 학생들 중
K1 기준 추가

4.
lower_bound / upper_bound 사용

*/

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: