코드포스(CodeForce)

Codeforces Round #469 (Div. 2) - A. Left-handers, Right-handers and Ambidexters

cepiloth 2018. 8. 17. 17:41
반응형


1. 문제


2. 알고리즘

키워드 - 구현


* 어설픈 해석

너는 수중 볼링 연습을 하고 있다.

그들 자신에 왼쪽 손만 사용하는 사람, 오른 쪽만 사용하는 사람 둘다 사용 할수 있는 ambidexters 가 l 명이 있다.

코치는 짝 수 명의 사람으로 팀을 구성하기로 결정 했다.

정확히 절반이 왼손을 사용해야 하고 또 절반이 오른손을 사용해야 한다.

ambidexters 는 왼손 오른손을 사용할 수 있다.

팀을 구성할수 있는 최대의 수를 출력하라.



* 문제 풀이

제약 사항으로 left, right 중 하나라도 0 이면 팀을 구성할 수 없다.

left, right 의 비율을 ambidexter 의 값으로 맞춘다.

left, right 의 값중 최소 값이 팀을 구성할 수 있는 가장 큰 단위가 된다.

문제에서 2인이 1팀으로 정의되니 left, right 의 최소 값에 2를 곱셈을 하면 최대 수를 알 수 있다.


3. 코드


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
#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>
#include <string>
using namespace std;
 
 
int main() {
 
    int left, right, am;
 
    cin >> left >> right >> am;
 
    // left, right 의 비율 조정 
    while (am > 0) {
 
        if (left > right)
            right++;
        else
            left++;
        am--;
    }
 
    int sol = min(left, right) * 2;
    cout << sol << endl;
    return 0;
}
cs

반응형