μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
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 | 30 |
- μκ³ λ¦¬μ¦
- λ°μ΄ν°λ² μ΄μ€
- κΉμ΄μ°μ νμ
- λ€μ΄λλ―Ήνλ‘κ·Έλλ°
- λ¨Έμ§μνΈ
- λλΉμ°μ νμ
- 그리λ
- μ€λΈμ
- λ³ν©μ λ ¬
- λμ ν©
- DP
- μ λ ¬
- skala1κΈ°
- λμ κ³νλ²
- SK
- νλ‘κ·Έλλ¨Έμ€
- DFS
- κ·Έλννμ
- λ°±μ€
- νμ΄μ¬
- LIS
- μν
- ꡬν
- μμνμ
- SQL
- ν°μ€ν 리μ±λ¦°μ§
- κ·Έλν
- skala
- db
- BFS
- Today
- Total
πππ°πΈ π£πΆπ΅ π΄π΅π¦π’π₯πΊ
[λ°±μ€] 2512λ²: μμ° - C++ λ³Έλ¬Έ
λ¬Έμ
κ΅κ°μ μν μ€ νλλ μ¬λ¬ μ§λ°©μ μμ°μμ²μ μ¬μ¬νμ¬ κ΅κ°μ μμ°μ λΆλ°°νλ κ²μ΄λ€. κ΅κ°μμ°μ μ΄μ‘μ 미리 μ ν΄μ Έ μμ΄μ λͺ¨λ μμ°μμ²μ λ°°μ ν΄ μ£ΌκΈ°λ μ΄λ €μΈ μλ μλ€. κ·Έλμ μ ν΄μ§ μ΄μ‘ μ΄νμμ κ°λ₯ν ν μ΅λμ μ΄ μμ°μ λ€μκ³Ό κ°μ λ°©λ²μΌλ‘ λ°°μ νλ€.
- λͺ¨λ μμ²μ΄ λ°°μ λ μ μλ κ²½μ°μλ μμ²ν κΈμ‘μ κ·Έλλ‘ λ°°μ νλ€.
- λͺ¨λ μμ²μ΄ λ°°μ λ μ μλ κ²½μ°μλ νΉμ ν μ μ μνμ‘μ κ³μ°νμ¬ κ·Έ μ΄μμΈ μμ°μμ²μλ λͺ¨λ μνμ‘μ λ°°μ νλ€. μνμ‘ μ΄νμ μμ°μμ²μ λν΄μλ μμ²ν κΈμ‘μ κ·Έλλ‘ λ°°μ νλ€.
μλ₯Ό λ€μ΄, μ 체 κ΅κ°μμ°μ΄ 485μ΄κ³ 4κ° μ§λ°©μ μμ°μμ²μ΄ κ°κ° 120, 110, 140, 150μ΄λΌκ³ νμ. μ΄ κ²½μ°, μνμ‘μ 127λ‘ μ‘μΌλ©΄, μμ μμ²λ€μ λν΄μ κ°κ° 120, 110, 127, 127μ λ°°μ νκ³ κ·Έ ν©μ΄ 484λ‘ κ°λ₯ν μ΅λκ° λλ€.
μ¬λ¬ μ§λ°©μ μμ°μμ²κ³Ό κ΅κ°μμ°μ μ΄μ‘μ΄ μ£Όμ΄μ‘μ λ, μμ 쑰건μ λͺ¨λ λ§μ‘±νλλ‘ μμ°μ λ°°μ νλ νλ‘κ·Έλ¨μ μμ±νμμ€.
μ λ ₯
첫째 μ€μλ μ§λ°©μ μλ₯Ό μλ―Ένλ μ μ Nμ΄ μ£Όμ΄μ§λ€. Nμ 3 μ΄μ 10,000 μ΄νμ΄λ€. λ€μ μ€μλ κ° μ§λ°©μ μμ°μμ²μ νννλ Nκ°μ μ μκ° λΉμΉΈμ μ¬μ΄μ λκ³ μ£Όμ΄μ§λ€. μ΄ κ°λ€μ λͺ¨λ 1 μ΄μ 100,000 μ΄νμ΄λ€. κ·Έ λ€μ μ€μλ μ΄ μμ°μ λνλ΄λ μ μ Mμ΄ μ£Όμ΄μ§λ€. Mμ N μ΄μ 1,000,000,000 μ΄νμ΄λ€.
μΆλ ₯
첫째 μ€μλ λ°°μ λ μμ°λ€ μ€ μ΅λκ°μΈ μ μλ₯Ό μΆλ ₯νλ€.
μ΄λΆνμμ μ΄μ©νμ¬ νΈλ λ¬Έμ .
μ²μμ 1λ² μ‘°κ±΄μ μκ°νμ§ μκ³ μ΄κΈ° μ€λ₯Έμͺ½ κ°μ MμΌλ‘ μ‘μΌλ©΄ λ΅μ΄ μλμ¨λ€.... λ°λΌμ Mμ΄ μλ μμ°λ€ μ€ μ΅λκ°μΈ μ μλ₯Ό μ΄κΈ° right κ°μΌλ‘ μ‘μμ€λ€. μ‘°κ±΄λ§ μ μκ°νκ³ νλ©΄ κ°λ¨νκ² ν μ μλ λ¬Έμ μλ€.
μ½λ
#include <cstdio>
#define MAX 100001
int money[MAX];
int main(void) {
int N, M;
scanf("%d", &N);
int maximum = 0;
for(int i = 0; i < N; i++) {
scanf("%d", &money[i]);
if(maximum < money[i]) maximum = money[i];
}
scanf("%d", &M);
int left = 0;
int right = maximum;
int result = 0;
while(left <= right) {
int mid = (left + right) / 2;
int sum = 0;
for(int i = 0; i < N; i++) {
sum += (money[i] > mid ? mid : money[i]);
}
if(sum <= M) {
left = mid + 1;
result = (result > mid ? result : mid);
}
else
right = mid - 1;
}
printf("%d\n", result);
return 0;
}
'μ½λ©ν μ€νΈ μ€λΉ > λ°±μ€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€] 1932λ²: μ μ μΌκ°ν - C++ (0) | 2022.02.10 |
---|---|
[λ°±μ€] 3020λ²: κ°λ₯λ²λ - C++ (0) | 2022.02.09 |
[λ°±μ€] 5639λ²: μ΄μ§ κ²μ νΈλ¦¬ - C++ (0) | 2022.01.24 |
[λ°±μ€] 1507λ²: κΆκΈν λ―ΌνΈ - C++ (0) | 2022.01.21 |
[λ°±μ€] 11404λ²: νλ‘μ΄λ - C++ (0) | 2022.01.20 |