8000 Update 2461.cpp · dkim-coder/basic-algo-lecture@7fe9ea4 · GitHub
[go: up one dir, main page]

Skip to content

Commit 7fe9ea4

Browse files
Update 2461.cpp
1 parent 9ce73f5 commit 7fe9ea4

File tree

1 file changed

+30
-32
lines changed

1 file changed

+30
-32
lines changed

0x14/solutions/2461.cpp

Lines changed: 30 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,42 @@
11
// Authored by : keyboardmunji
22
// Co-authored by : -
3-
// http://boj.kr/e0c5f4a5d5fc4c8bae9107590e538eae
4-
#include<bits/stdc++.h>
3+
// http://boj.kr/904f8aa97bd644f9a0633199b5cf6285
4+
#include <bits/stdc++.h>
5+
using namespace std;
6+
57
#define X first
68
#define Y second
79

8-
using namespace std;
910
int n, m, cnt, en, ans = 0x7f7f7f7f;
10-
int chk[1005]; // 각 팀이 구간속에 모두 있는지 확인하는 벡터
11-
vector<pair<int, int>> a; // 능력치와 각팀의 인덱스를 저장하는 벡터
11+
int chk[1005]; // 각 팀이 구간속에 모두 있는지 확인하는 벡터
12+
vector<pair<int, int>> a; // 능력치와 각팀의 인덱스를 저장하는 벡터
1213

1314
int main(void) {
14-
ios::sync_with_stdio(false);
15-
cin.tie(NULL);
15+
ios::sync_with_stdio(0);
16+
cin.tie(0);
1617

17-
cin >> n >> m;
18-
for (int i = 0;i < n;i++) {
19-
for (int j = 0;j < m;j++) {
20-
int num;
21-
cin >> num;
22-
a.push_back({ num, i });
23-
}
18+
cin >> n >> m;
19+
for (int i = 0; i < n; i++) {
20+
for (int j = 0; j < m; j++) {
21+
int num;
22+
cin >> num;
23+
a.push_back({num, i});
2424
}
25-
sort(a.begin(), a.end());
25+
}
26+
sort(a.begin(), a.end());
2627

27-
for (int st = 0;st < n * m;st++) {
28-
// 구간 속에 각 팀이 모두 포함되게 en을 증가
29-
while (cnt < n && en < n * m) {
30-
if (chk[a[en].Y] == 0)
31-
cnt++;
32-
chk[a[en].Y]++;
33-
en++;
34-
}
35-
if (cnt != n)
36-
break;
37-
ans = min(ans, a[en - 1].X - a[st].X);
38-
chk[a[st].Y]--;
39-
if (chk[a[st].Y] == 0)
40-
cnt--;
28+
for (int st = 0; st < n * m; st++) {
29+
// 구간 속에 각 팀이 모두 포함되게 en을 증가
30+
while (cnt < n && en < n * m) {
31+
if (chk[a[en].Y] == 0) cnt++;
32+
chk[a[en].Y]++;
33+
en++;
4134
}
42-
cout << ans;
43-
return 0;
44-
}
35+
if (cnt != n) break;
36+
ans = min(ans, a[en - 1].X - a[st].X);
37+
chk[a[st].Y]--;
38+
if (chk[a[st].Y] == 0) cnt--;
39+
}
40+
cout << ans;
41+
return 0;
42+
}

0 commit comments

Comments
 (0)
0