지식보부상님의 공부 일지

백준 19572번: 가뭄(Small) 본문

C언어 문제풀이

백준 19572번: 가뭄(Small)

지식보부상님 2021. 2. 8. 13:47

www.acmicpc.net/problem/19572

 

19572번: 가뭄(Small)

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

www.acmicpc.net

문제

가뭄에 찌든 신촌을 위해서 국렬이는 세 칸으로 구성되어 있는 신촌에 비를 내릴 것이다. 그러나 국렬이는 무능해서 각 칸마다 비를 내리지 못하고, 두 칸에 동일하게 비를 내리는 것만 할 수 있다.

1번째 칸, 2번째 칸에 동시에 뿌리는 비의 강수량을 a cm, 1번째 칸, 3번째 칸에 동시에 뿌리는 비의 강수량을 b cm, 2번째 칸, 3번째 칸에 동시에 뿌리는 비의 강수량을 c cm라고 하자. a, b, c는 모두 양의 실수여야 한다. 가뭄에 찌든 신촌이라도 비가 너무 많이 오면 상당히 곤란하고, 비가 너무 조금 와도 곤란하다. 그래서 각 칸에 해당하는 지역은 강수량이 정확히 di cm가 되어야 한다. 이때 정확한 a, b, c의 값을 구하여라.

입력

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

출력

조건에 맞게 비를 내릴 수 없다면 -1을 출력한다.

조건에 맞게 비를 내릴 수 있다면 1을 출력하고, 다음 줄에 abc를 소수 첫째 자리까지 반올림한 것을 공백으로 구분하여 출력한다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#include <stdlib.h>
 
int main(){
    int d1, d2, d3;
    float a = 0, b = 0, c = 0;
    float abc = 0;
 
    scanf("%d %d %d"&d1, &d2, &d3);
    
    abc = (d1 + d2 + d3) / 2.0;
    a = abc - d3;
    b = abc - d2;
    c = abc - d1;
    if (a <= 0 || b <= 0 || c <= 0)
        printf("-1");
    else {
        printf("1\n%.1f %.1f %.1f", a, b, c);
    }
 
    return 0;
}
 
cs

 

'C언어 문제풀이' 카테고리의 다른 글

백준 10828번: 스택  (2) 2023.04.20
백준 9012번: 괄호  (0) 2023.04.20
백준 1018번: 체스판 다시 칠하기  (0) 2021.02.08
백준 10757번: 큰 수 A+B  (1) 2021.01.03
백준 2775번: 부녀회장이 될테야  (0) 2021.01.03