λμ΄λ | μ λ΅λ₯ |
β β β | -% |
ν리미μ μκ³ λ¦¬μ¦ μν΄λ¦¬ λΉνμκ³ μμ¦3 4μ 1μ£Όμ°¨
λ¬Έμ
ν΄κ²°
key point, Nλͺ μ μ¬λμ μ§λ£νκΈ° μν΄ κ±Έλ¦¬λ μ΅μ μκ°μ μ΄λΆνμνμ!
- kκ°μ μ§λ£μ€μμ νμλ₯Ό μ§λ£νκΈ° μν΄ κ±Έλ¦¬λ μκ°μ΄ κ°κ° μ£Όμ΄μ§λ€. → a[k]
- κ·Έλ¦¬κ³ μ§λ£μ€μμ 걸리λ μκ°μ κ°μ§κ³ μ 체 μκ°μ μμλ΄μΌνλ€.
- νμ§λ§ μ°λ¦¬λ κ±°κΎΈλ‘, μμμ μκ°μ΄ κ±Έλ¦°λ€κ³ κ°μ νκ³ λͺ λͺ
μ μΉλ£ν μ μλμ§ κ΅¬ν κ²μ΄λ€.
- κ° μ§λ£μ€μμ μΉλ£ν μ μλ νμμ μλ (μ 체 μκ°)/a[k] μ΄λ€.
- μμμ μκ°μμ κ° μ§λ£μ€μμ μΉλ£ν μ μλ νμμ μλ₯Ό λͺ¨λ λν κ°μ΄ Nλ³΄λ€ ν¬κ±°λ κ°λ€λ©΄ μ΅μ μκ°μ ꡬν΄μΌ νλ―λ‘ λ μμ μκ° λ΄μμ Nλͺ μ΄μμ νμλ₯Ό μΉλ£ν μ μλμ§ νμν΄λ΄μΌνλ€.
- κ·Έλμ μ°λ¦¬λ μ΅μμ μ΅λλ₯Ό κ°κ° l(left)κ³Ό r(right)λ‘ μ‘κ³ μ΄λΆνμμ μ§νν΄μ
- ν΄λΉ μκ°μ μ§λ£ν μ μλ νμμ μλ₯Ό λ§€λ² κ΅¬ν΄μ Nκ³Ό λΉκ΅νλ€.
- ν΄λΉ μκ°μ μ§λ£ν μ μλ νμμ μλ ν΄λΉμκ°μ μ§λ£μμμ 걸리λ μκ°μΌλ‘ λλ κ°μ΄κΈ° λλ¬Έμ μ΅λ 10μ΅μ΄ λ μ μκ³ , kκ°μ μ§λ£μ€μ΄ μμ΄μ 10μ΅*kκ° λ μ μμ΄ intνμ λ²μλ₯Ό λμ΄μκΈ° λλ¬Έμ long long νμΌλ‘ μ§μ ν΄μ£Όμλ€.
- λ°λ³΅λ¬Έμ κ³μ λλ€κ° lμ΄ rκ³Ό κ°κ±°λ λ 컀μ§λ μν©μ΄ λλ©΄ μ’ λ£νλ€.
μ½λ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
#include <cstdio>
using namespace std;
typedef long long ll;
int n, k, ans, arr[100005];
ll chk(int mid) {
ll res = 0;
for (int i = 0; i < k; i++) {
res += (mid / arr[i]);
}
return res;
}
int main() {
scanf("%d%d", &n, &k);
for (int i = 0; i < k; i++) {
scanf("%d", &arr[i]);
}
int l = 0, r = 1e9;
while (l <= r) {
int mid = (l + r) / 2;
ll res = chk(mid);
if (res >= n) {
r = mid - 1;
ans = mid;
}
else l = mid + 1;
}
printf("%d", ans);
return 0;
}
|
cs |
'π₯ PS(Problem Solving) π₯ > goorm' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[ꡬλ¦LEVEL] ννμ½ν (0) | 2020.04.30 |
---|---|
[ꡬλ¦LEVEL] μ¨λΌμΈ κ°μ (0) | 2020.04.01 |
[ꡬλ¦LEVEL] νν (0) | 2020.04.01 |
[ꡬλ¦LEVEL] λ§κ°μ§ μλΌν μ€ν λ€μ€μ 체 (0) | 2020.03.27 |
[ꡬλ¦LEVEL] λ²½ ν΅κ³ΌνκΈ° (0) | 2020.03.25 |
λκΈ