File tree Expand file tree Collapse file tree 1 file changed +60
-0
lines changed Expand file tree Collapse file tree 1 file changed +60
-0
lines changed Original file line number Diff line number Diff line change
1
+ package day1031 ;
2
+
3
+ import java .io .*;
4
+ import java .util .*;
5
+
6
+ public class JY_2461 {
7
+
8
+ public static void main (String [] args ) throws IOException {
9
+ BufferedReader br = new BufferedReader (new InputStreamReader (System .in ));
10
+ StringTokenizer st = new StringTokenizer (br .readLine ());
11
+
12
+ int N = Integer .parseInt (st .nextToken ());
13
+ int M = Integer .parseInt (st .nextToken ());
14
+
15
+ int [][] srr = new int [N ][M ];
16
+ for (int i =0 ; i <N ; i ++) {
17
+ st = new StringTokenizer (br .readLine ());
18
+ for (int j =0 ; j <M ; j ++) {
19
+ srr [i ][j ] = Integer .parseInt (st .nextToken ());
20
+ }
21
+ }
22
+
23
+ // 각 반 정렬
24
+ for (int i =0 ; i <N ; i ++) {
25
+ Arrays .sort (srr [i ]);
26
+ }
27
+
28
+ // 각 반의 학생 인덱스 포인터 배열
29
+ int [] n = new int [N ];
30
+
31
+ int ans = Integer .MAX_VALUE ;
32
+ while (true ) {
33
+ int max = Integer .MIN_VALUE ;
34
+ int min = Integer .MAX_VALUE ;
35
+ int minIdx = -1 ;
36
+
37
+ // 각 반 반복
38
+ for (int i =0 ; i <N ; i ++) {
39
+ int j = n [i ]; // 각 반이 현재 가리키고 있는 학생
40
+ if (max < srr [i ][j ]) {
41
+ max = srr [i ][j ];
42
+ }
43
+ if (min > srr [i ][j ]) {
44
+ min = srr [i ][j ];
45
+ minIdx = i ;
46
+ }
47
+ }
48
+
49
+ ans = Math .min (ans , max -min );
50
+ n [minIdx ]++;
51
+ if (n [minIdx ] == M ) break ;
52
+
53
+ }
54
+
55
+ System .out .println (ans );
56
+
57
+ }
58
+
59
+
60
+ }
You can’t perform that action at this time.
0 commit comments