반응형
https://www.acmicpc.net/problem/24365
24365번: ПЧЕЛИЧКАТА МАЯ
На три цветя, подредени в редица на разстояние през 1 метър, са кацнали пчели. На лявото цвете пчелите не са повече от тези на средното, а на ср
www.acmicpc.net
구현 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
각 꽃의 꿀벌 수를 저장할 vector<pair> v, 정답을 출력할 변수 ans, 전체 꽃의 평균 avg를 선언 후 정보를 입력받습니다.가장 왼쪽 꽃을 0번, 중앙을 1번, 오른쪽을 2번 index로 생각해 vector에 first로는 꿀벌 수, second에는 꽃의 index를 저장합니다.
📔 풀이과정
1. 최대한 덜 이동하며 균등하게 배분되려면 모든 꿀벌 / 3이상의 꿀벌들이 각 꽃에 배치되어야 합니다. 이 값을 구해 avg에 저장합니다.
2. 꿀벌 마리 수에 대해 오름차순으로 정렬합니다.
3. 균등하게 배치하기 위해서는 가장 많은 꿀벌이 있는 꽃에서 날아오는 방법 뿐입니다.
거리 = 가장 많은 장소(v.second) - 나머지 장소이며 날아갈 꿀벌 수 = (avg - 나머지 꽃의 꿀벌 수 ) 가 됩니다.
📔 정답출력
거리 * 날아갈 꿀벌 수의 총합이 답입니다. 이를 출력합니다.
📕 Code
#include <bits/stdc++.h>
using namespace std;
using pii = pair<int,int>;
vector <pii> v(3);
int ans, avg;
int main(){
v[0].second = 0; v[1].second = 1; v[2].second = 2;
cin >> v[0].first >> v[1].first >> v[2].first;
avg = (v[0].first + v[1].first + v[2].first) / 3;
sort(v.begin(), v.end());
cout << abs(v[2].second - v[0].second) * (avg - v[0].first) + abs(v[2].second - v[1].second) * (avg - v[1].first);
}
'Algorithm > Implementation' 카테고리의 다른 글
(C++) - 백준(BOJ) 13623 : Zero or One (0) | 2022.04.07 |
---|---|
(C++) - 백준(BOJ) 20540 : 연길이의 이상형 (0) | 2022.03.23 |
(C++) - 백준(BOJ) 24736 : Football Scoring (0) | 2022.03.21 |
(Python) - 백준(BOJ) 4150 : 피보나치 수 (0) | 2022.03.17 |
(Python) - 백준(BOJ) 2729 : 이진수 덧셈 (0) | 2022.03.16 |