반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 유니티 해상도 고정
- 엑셀 내보내기
- 테크스트림
- 다른 시트값
- 다각형 중점
- 스프레드시트 사용법
- cmd키 변경
- 라이더
- 스프레드 시트
- navmesh
- 엑셀 가져오기
- ilcode
- 진수 변환기
- 한달리뷰
- Mac
- 백준
- unity
- navmeshagent
- Mac 상단바 아이콘 이동
- 알고리즘
- ilviewer
- unity 받기
- monocraft
- 유니티
- Rider
- rider 설치
- C#
- unity 구버전
- git
- 스프레드시트
Archives
- Today
- Total
코스모스 공작소
백준 2805 나무자르기 (성공) 본문
반응형
https://www.acmicpc.net/problem/2805
파라매트릭 서치 문제
랜선 자르기와 비슷한 문제
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | #include<iostream> #include <algorithm> using namespace std; int main() { int K; cin >> K; int N; cin >> N; long long* list = new long long [K]; for (int i = 0; i < K; i++) { scanf("%lld", &list[i]); } sort(list, list + K); long long start = 1; long long end = list[K-1]; long long answer = 0; while (start <= end) { long long mid = (start + end) / 2; long long sum = 0; for (int i = 0; i < K; i++) { if (list[i] - mid >= 0) { sum += list[i] - mid; } } if (sum >= N) { start = mid + 1; if (mid > answer) { answer = mid; } } else { end = mid - 1; } } cout << answer; return 0; } | cs |
반응형
'프로그래밍 > 알고리즘' 카테고리의 다른 글
백준 1654 랜선 자르기 (성공) (0) | 2020.01.20 |
---|---|
힙(heap) 과 힙정렬, 그리고 우선순위 큐 (0) | 2019.12.18 |
백준 2468 안전영역 (bfs) [성공] (0) | 2019.12.18 |
백준 11047번 동전 0 [성공] (0) | 2019.12.08 |
백준 11399번 ATM [성공] (0) | 2019.12.06 |
Comments