안녕하세요. 오늘은 보디빌딩을 할거예요.

문제

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

아이디어

루틴을 진행하는 횟수에 제한이 없고 시간에 따라 X값이 변하지도 않으므로 최대한 살을 찌워놓은 다음에 맨 마지막에 상한에 맞춰서 루틴을 진행하면 됩니다.

소스코드

#include <iostream>
using namespace std;

int main(void)
{
	ios_base::sync_with_stdio(false); cin.tie(NULL);
	long long N, X, i, a[505050] = { 0 }, b, sum = 0;
	cin >> N >> X;
	for (i = 0; i < N; i++) cin >> a[i];
	for (i = 0; i < N; i++)
	{
		cin >> b;
		sum += b;
		if (sum < a[i])
		{
			cout << -1;
			return 0;
		}
	}

	cout << (sum - a[N - 1]) / X;
}


감사합니다.

0개의 댓글