C언어/C언어 문제

[C언어] 백준 17950번: 스노우볼

renne 2022. 8. 19. 19:04

https://www.acmicpc.net/problem/17950

 

17950번: 스노우볼

오늘도 과제산에서는 크고 작은 스노우볼들이 굴러가고 있다. 과제산 아래에서 살고 있는 정명이는 이 스노우볼이 너무 커져서 집을 무너뜨릴까 걱정이다. 시작은 아무리 작은 스노우볼이라도,

www.acmicpc.net

#include <stdio.h>
int main(){
    int h, x, snow, div = 1000000007;
    long long sum = 0, mul;

    scanf("%d %d", &h, &x);
    mul = x;

    for (int i = 0; i < h; i++){
        scanf("%d", &snow);
        sum += (long long)snow * mul;
        sum %= div;
        mul *= x;	//i가 1 증가하면(산의 높이가 1cm 증가하면) 스노우볼에 x를 전보다 1번 더 곱해야 한다.
        mul %= div;
    }

    printf("%lld", sum);
    return 0;
}

 

[문제]

h: 산의 높이

x: 스노우볼이 1cm 내려올 때마다 커지는 배수

 

[입력]

1번째 줄: h x

2번째 줄부터:

 

2번째 줄 1cm에서 만들어진 스노우볼의 개수: 1
3번째 줄 2cm에서 만들어진 스노우볼의 개수: 3