[백준/BOJ] 23351. 물 주기 [Silver 3]

  1. 물 주기

문제 출처 : https://www.acmicpc.net/problem/23351

code

#include <stdio.h>

int main()
{
	int N, K, A, B, catnip, day = 0;
	scanf("%d %d %d %d", &N, &K, &A, &B);
	catnip = K;
	while (1)
	{
		day++;
		if (day % (N/A) == 0)
			catnip += B;
		catnip--;
		if (catnip == 0)
			break;
	}

	printf("%d", day);
	return 0;
}

입력조건에 A는 N의 약수라고 했으니까 N/A개의 화분 그룹이 생길것이다.
그러므로 기간이 최대한 길어지도록 물을 줄 때 그룹 앞에서부터 물을주기 시작하면,
맨뒤에 있는 그룹이 가장 먼저 죽을것이다.
그래서 우리는 맨뒤에 있는 그룹을 기준으로 보면, 맨뒤에 있는 화분은 N/A일 마다 물을 받게 된다. 이것을 while(1)무한루프로 돌리면 저렇게 된다.

생각조금만해보면 쉬운문제인듯

좋은 웹페이지 즐겨찾기