File tree Expand file tree Collapse file tree 1 file changed +35
-8
lines changed Expand file tree Collapse file tree 1 file changed +35
-8
lines changed Original file line number Diff line number Diff line change 1
- // Authored by : BaaaaaaaaaaarkingDog
1
+ // Authored by : jimi567
2
2
// Co-authored by : -
3
- // http://boj.kr/****************
3
+ // http://boj.kr/73dbdb8d97e84a1f9b1f6852b58d9cd2
4
4
#include < bits/stdc++.h>
5
5
using namespace std ;
6
-
7
- int main (void ){
8
- ios::sync_with_stdio (0 );
9
- cin.tie (0 );
10
-
11
- }
6
+ #define X first
7
+ #define Y second
8
+ #define ll long long
9
+ int n, m;
10
+ int arr[1005 ][1005 ];
11
+ int ans = 0x7f7f7f7f ;
12
+ vector<int > idx; // 각 팀들의 현재 인덱스를 저장하는 벡터.
13
+ int main (void ) {
14
+ ios::sync_with_stdio (0 );
15
+ cin.tie (0 );
16
+ cin >> n >> m;
17
+ for (int i = 0 ;i < n;i++) {
18
+ idx.push_back (0 );
19
+ for (int j = 0 ;j < m;j++) cin >> arr[i][j];
20
+ }
21
+ for (int i = 0 ;i < n;i++) sort (arr[i], arr[i] + m);
22
+ while (1 ) {
23
+ int mntm;
24
+ int mx = -1 ;
25
+ int mn = 0x7f7f7f7f ;
26
+ for (int i = 0 ;i < n;i++) {
27
+ if (mn > arr[i][idx[i]]) { // 최솟값 갱신, 최솟값을 가지는 팀 갱신
28
+ mn = arr[i][idx[i]];
29
+ mntm = i;
30
+ }
31
+ if (mx < arr[i][idx[i]]) mx = arr[i][idx[i]]; // 최댓값 갱신
32
+ }
33
+ ans = min (ans, mx-mn);
34
+ idx[mntm] += 1 ;
35
+ if (idx[mntm] == m) break ; // 만약 최솟값을 가지는 팀이 마지막 인덱스에 해당하면 종료.
36
+ }
37
+ cout << ans;
38
+ }
You can’t perform that action at this time.
0 commit comments