[BOJ 2802] 크레용

View as PDF

Submit solution

Points: 4
Time limit: 5.0s
Memory limit: 160M

Problem types
Allowed languages
Assembly, Awk, C, C++, Java, Pascal, Perl, Python, Sed, Text

창영이는 생일 선물로 크레용 N개를 받았다. 각 크레용의 색은 빨강, 초록, 파랑이 혼합으로 나타낼 수 있다. i번 크레용의 색은 빨강 성분 Ri, 초록 성분 Gi, 파랑 성분 Bi로 나타낼 수 있다.

i번 크레용과 j번 크레용의 거리는 max(|Ri - Rj|, |Gi - Gj|, |Bi - Bj|) 이다. 크레용 여러 개의 채도는 두 크레용의 거리 중 가장 큰 값이다.

창영이는 가지고 있는 크레용 중에서 채도가 가장 작게 되는 크레용 K개를 고르려고 한다. 이때, 어떻게 고르면 채도가 최소가 되는지 구하는 프로그램을 작성하시오.

입력 형식

첫째 줄에 N과 K가 주어진다. (2 ≤ K ≤ N ≤ 100,000)

다음 N개 줄에는 각 크레용의 색상 성분 Ri, Gi, Bi가 주어진다. (0 ≤ Ri, Gi, Bi ≤ 255)

출력 형식

첫째 줄에 K개를 골랐을 때, 가장 작은 채도를 출력한다. 다음 K개 줄에는 고른 크레용의 R, G, B 성분을 한 줄에 하나씩 출력한다. 

예제 입력 1

2 2
1 3 2
2 6 4

예제 출력 1

3
1 3 2
2 6 4

예제 입력 2

3 2
3 3 4
1 6 4
1 1 2

예제 출력 2

2
3 3 4
1 1 2

예제 입력 3

5 3
6 6 4
6 2 7
3 1 3
4 1 5
6 2 6

예제 출력 3

2
6 2 7
4 1 5
6 2 6

Comments

There are no comments at the moment.