상세 컨텐츠

본문 제목

[백준] 19572번 가뭄(Small) (c++)

프로그래밍/백준 c++

by montgras 2021. 8. 14. 00:53

본문

반응형

[문제] https://www.acmicpc.net/problem/19572

 

19572번: 가뭄(Small)

3개의 양의 정수가 입력으로 들어온다. 각각은 d1, d2, d3을 의미한다. (1 ≤ d1, d2, d3 ≤ 106)

www.acmicpc.net

 

 

 


[풀이]

주요 포인트

-수학 문제다. 미지수 3개짜리 방정식으로 접근해서 식을 구성하면 풀린다.

 

알고리즘

1. a, b, c를 입력받는다.

2. 방정식을 풀어준다.

3. 방정식을 풀었을 때, a/b/c 중에 하나라도 음수가 나온다면 이는 불가능한 케이스라는 뜻이다. '-1'를 출력하고 끝낸다.

4. 아니라면, '1'을 출력하고 a/b/c를 출력한다.


 

(전체 코드)

#include <iostream>

using namespace std;

int main() {
    cin.tie(0); cout.tie(0);
    ios::sync_with_stdio(false);

    float d[3];
    float a = 0, b = 0, c = 0;
    for (int i = 0; i < 3; i++)
        cin >> d[i];

    b = (d[0] - d[1] + d[2]) / 2;
    c = d[2] - b;
    a = d[0] - b;

    if (a <= 0 || b <= 0 || c <= 0)
        cout << "-1";

    else {
        cout << "1" << "\n";
        //소수점 하나만 출력
        cout << fixed;
        cout.precision(1);
        cout << a << ' ' << b << ' ' << c;
    }
}

 

반응형

관련글 더보기

댓글 영역