๋ฌธ์
์๊ทผ์ด์ ์น๊ตฌ๋ค์ ์ค์คํธ๋ ์ผ๋ฆฌ์๋ก ์ฌํ์ ๋ ๋ฌ๋ค. ์๊ทผ์ด์ ์น๊ตฌ๋ค์ ์ด M๋ช
์ด๊ณ , ์ง๊ธ ๊ณตํญ์์ ํ ์ค๋ก ์์ ์
๊ตญ์ฌ์ฌ๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ณ ์๋ค. ์
๊ตญ์ฌ์ฌ๋๋ ์ด N๊ฐ๊ฐ ์๋ค. ๊ฐ ์
๊ตญ์ฌ์ฌ๊ด์ด ์ฌ์ฌ๋ฅผ ํ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ฌ๋๋ง๋ค ๋ชจ๋ ๋ค๋ฅด๋ค. k๋ฒ ์ฌ์ฌ๋์ ์์์๋ ์ฌ์ฌ๊ด์ด ํ ๋ช
์ ์ฌ์ฌ๋ฅผ ํ๋๋ฐ ๋๋ ์๊ฐ์ Tk์ด๋ค.
๊ฐ์ฅ ์ฒ์์ ๋ชจ๋ ์ฌ์ฌ๋๋ ๋น์ด์๊ณ , ์ฌ์ฌ๋ฅผ ํ ์ค๋น๋ฅผ ๋ชจ๋ ๋๋๋ค. ์๊ทผ์ด์ ์น๊ตฌ๋ค์ ๋นํ๊ธฐ ํ๋๋ฅผ ์ ์ธ๋ด๊ณ ๋๋ฌ๊ฐ๊ธฐ ๋๋ฌธ์, ์ง๊ธ ์ฌ์ฌ๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ณ ์๋ ์ฌ๋์ ๋ชจ๋ ์๊ทผ์ด์ ์น๊ตฌ๋ค์ด๋ค. ํ ์ฌ์ฌ๋์์๋ ํ ๋ฒ์ ํ ์ฌ๋๋ง ์ฌ์ฌ๋ฅผ ํ ์ ์๋ค. ๊ฐ์ฅ ์์ ์ ์๋ ์ฌ๋์ ๋น์ด์๋ ์ฌ์ฌ๋๊ฐ ๋ณด์ด๋ฉด ๊ฑฐ๊ธฐ๋ก ๊ฐ์ ์ฌ์ฌ๋ฅผ ๋ฐ์ ์ ์๋ค. ํ์ง๋ง ํญ์ ์ด๋์ ํด์ผ ํ๋ ๊ฒ์ ์๋๋ค. ๋ ๋น ๋ฅธ ์ฌ์ฌ๋์ ์ฌ์ฌ๊ฐ ๋๋๊ธธ ๊ธฐ๋ค๋ฆฐ ๋ค์์ ๊ทธ ๊ณณ์ผ๋ก ๊ฐ์ ์ฌ์ฌ๋ฅผ ๋ฐ์๋ ๋๋ค.
์๊ทผ์ด์ ์น๊ตฌ๋ค์ ๋ชจ๋ ์ปดํจํฐ ๊ณตํ๊ณผ ํ์์ด๊ธฐ ๋๋ฌธ์, ์ด๋ป๊ฒ ์ฌ์ฌ๋ฅผ ๋ฐ์ผ๋ฉด ๋ชจ๋ ์ฌ๋์ด ์ฌ์ฌ๋ฅผ ๋ฐ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ด ์ต์๊ฐ ๋ ์ง ๊ถ๊ธํด์ก๋ค.
์๋ฅผ ๋ค์ด, ๋ ์ฌ์ฌ๋๊ฐ ์๊ณ , ์ฌ์ฌ๋ฅผ ํ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ด ๊ฐ๊ฐ 7์ด์ 10์ด๋ผ๊ณ ํ์. ์ค์ ์ ์๋ ์ฌ๋์ด 6๋ช
์ด๋ผ๋ฉด, ๊ฐ์ฅ ์ฒซ ๋ ์ฌ๋์ ์ฆ์ ์ฌ์ฌ๋ฅผ ๋ฐ์ผ๋ฌ ๊ฐ๊ฒ ๋๋ค. 7์ด๊ฐ ๋์์ ๋, ์ฒซ ๋ฒ์งธ ์ฌ์ฌ๋๋ ๋น์ด์๊ฒ ๋๊ณ , ์ธ ๋ฒ์งธ ์ฌ๋์ด ๊ทธ๊ณณ์ผ๋ก ์ด๋ํด์ ์ฌ์ฌ๋ฅผ ๋ฐ์ผ๋ฉด ๋๋ค. 10์ด๊ฐ ๋๋ ์๊ฐ, ๋ค ๋ฒ์งธ ์ฌ๋์ด ์ด๊ณณ์ผ๋ก ์ด๋ํด์ ์ฌ์ฌ๋ฅผ ๋ฐ์ผ๋ฉด ๋๊ณ , 14์ด๊ฐ ๋์์ ๋๋ ๋ค์ฏ ๋ฒ์งธ ์ฌ๋์ด ์ฒซ ๋ฒ์งธ ์ฌ์ฌ๋๋ก ์ด๋ํด์ ์ฌ์ฌ๋ฅผ ๋ฐ์ผ๋ฉด ๋๋ค. 20์ด๊ฐ ๋์์ ๋, ๋ ๋ฒ์งธ ์ฌ์ฌ๋๊ฐ ๋น์ด์๊ฒ ๋๋ค. ํ์ง๋ง, ์ฌ์ฏ ๋ฒ์งธ ์ฌ๋์ด ๊ทธ ๊ณณ์ผ๋ก ์ด๋ํ์ง ์๊ณ , 1์ด๋ฅผ ๋ ๊ธฐ๋ค๋ฆฐ ๋ค์์ ์ฒซ ๋ฒ์งธ ์ฌ์ฌ๋๋ก ์ด๋ํด์ ์ฌ์ฌ๋ฅผ ๋ฐ์ผ๋ฉด, ๋ชจ๋ ์ฌ๋์ด ์ฌ์ฌ๋ฅผ ๋ฐ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ด 28์ด๊ฐ ๋๋ค. ๋ง์ฝ, ๋ง์ง๋ง ์ฌ๋์ด 1์ด๋ฅผ ๋ ๊ธฐ๋ค๋ฆฌ์ง์๊ณ , ์ฒซ ๋ฒ์งธ ์ฌ์ฌ๋๋ก ์ด๋ํ์ง ์์๋ค๋ฉด, ๋ชจ๋ ์ฌ๋์ด ์ฌ์ฌ๋ฅผ ๋ฐ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ด 30์ด๊ฐ ๋๊ฒ ๋๋ค.
์๊ทผ์ด์ ์น๊ตฌ๋ค์ด ์ฌ์ฌ๋ฅผ ๋ฐ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ต์๊ฐ์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ N๊ณผ M์ด ์ฃผ์ด์ง๋ค. (1 ≤ N ≤ 100,000, 1 ≤ M ≤ 1,000,000,000)
๋ค์ N๊ฐ ์ค์๋ ๊ฐ ์ฌ์ฌ๋์์ ์ฌ์ฌ๋ฅผ ํ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ธ Tk๊ฐ ์ฃผ์ด์ง๋ค. (1 ≤ Tk≤ 109)
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ์๊ทผ์ด์ ์น๊ตฌ๋ค์ด ์ฌ์ฌ๋ฅผ ๋ง์น๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ต์๊ฐ์ ์ถ๋ ฅํ๋ค.
ํ์ด
์ฌ์ด ์ด๋ถํ์ ๋ฌธ์ ์ธ๋ฐ,, ์ ๋ ฅ๊ฐ๋ค์ ๋ฒ์๊ฐ ์์ฒญ๋๋ค
long long ์ผ๋ก ํด๋ 34% ์์ ํ๋ ธ์ต๋๋ค๊ฐ ๋ฌ๋ค
unsigned long long์ ์จ์ฃผ์
#include <bits/stdc++.h>
using namespace std;
typedef unsigned long long ll;
int main() {
ios_base :: sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
// input
ll n,m;
cin >> n >> m;
vector<ll>v(n);
for(int i=0; i<n; i++) {
cin >> v[i];
}
// solution
ll start, end, mid, ans;
start = 1;
end = *max_element(v.begin(), v.end()) * m;
ans = end;
while(start<=end) {
mid = (start + end) / 2;
ll people = 0;
for(ll t : v) {
people += mid/t;
}
if(people < m) {
start = mid + 1;
} else {
ans = min(ans, mid);
end = mid - 1;
}
}
cout << ans;
return 0;
}
'๐๏ธ PS (BOJ) > Binary Search' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ][C++] ๋ฐฑ์ค 10816๋ฒ: ์ซ์ ์นด๋ 2 (Silver IV) (0) | 2025.04.22 |
---|---|
[BOJ][C++] ๋ฐฑ์ค 1920๋ฒ: ์ ์ฐพ๊ธฐ (Silver IV) (0) | 2025.04.22 |
[BOJ][C++] ๋ฐฑ์ค 1365๋ฒ: ๊ผฌ์ธ ์ ๊น์ค (0) | 2024.09.30 |
[BOJ][C++] ๋ฐฑ์ค 1654๋ฒ: ๋์ ์๋ฅด๊ธฐ (0) | 2023.11.17 |
[BOJ][C++] ๋ฐฑ์ค 2805๋ฒ: ๋๋ฌด ์๋ฅด๊ธฐ (0) | 2023.11.06 |