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

문제 분석

 

사료 양 = 전날 자신의 사료양 + 양 옆에 앉은 돼지 사료양 + 맞은편에 앉은 돼지 사료양으로 계산한 뒤에

며칠까지 돼지의 요구에 맞게 사료양을 구할수 있는지 구하는 문제입니다.

날별로 조건에 맞게 사료양을 구하고 총 사료양과 비교하면 됩니다.

소스 코드

#include <iostream>
#include <vector>
#include <string>
#include <cmath>
#include <climits>
#include <algorithm>
using namespace std;
using std::cin;
using std::cout;
typedef long long int ll;

int days(vector<ll> &v, int f)
{
	int day = 0;
	ll fsum = 0;
	while (fsum <=f)
	{
		fsum = 0;
		vector<ll> nextv(6);
		for (int i = 0; i < v.size(); i++)
		{
			fsum += v[i];
			int right;
			int left;
			int opposit;
			if (i - 1 < 0)
			{
				left = v.size() - 1;
			}
			else
			{
				left = i - 1;
			}
			if (i + 1 >= v.size())
			{
				right = 0;
			}
			else
			{
				right = i + 1;
			}

			opposit = i + 3;
			if (opposit > 5)
			{
				opposit = opposit - 6;
			}
			nextv[i] = v[i] + v[left] + v[right] + v[opposit];
		}
		v = nextv;
		day++;
	}
	return day;
}

int main()
{
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	int t;
	cin >> t;
	for (int i = 0; i < t; i++)
	{
		// 하루 사료의 양
		int f;
		cin >> f;
		vector<ll> v(6);
		for (int j = 0; j < 6; j++)
		{
			int n;
			cin >> n;
			v[j] = n;
		}
		cout << days(v, f) << "\n";
	}
}

'백준 > 실버' 카테고리의 다른 글

[백준 1622]- 공통 순열(c++)  (0) 2026.04.03
[백준 15729]- 방탈출(c++)  (0) 2026.03.25
[백준 14916] - 거스름돈(c++)  (0) 2026.03.16
[백준 1340] - 연도 진행바  (0) 2026.03.05
[백준 3758] - KCPC(C++)  (0) 2026.02.23

+ Recent posts