안녕하세요. 오늘은 욕심쟁이 돼지를 만날 거예요.
https://www.acmicpc.net/problem/3060
그냥 모든 경우를 다 돌려보면 됩니다.
#include <iostream>
#include <vector>
#define ll long long
using namespace std;
vector <ll> change(vector <ll> v)
{
vector <ll> v2(6);
for (ll i = 0; i < 6; i++)
{
v2[i] = v[i] + v[(i + 3) % 6] + v[(i + 1) % 6] + v[(i + 5) % 6];
}
return v2;
}
ll SUM(vector <ll> v)
{
ll sum = 0;
for (ll i = 0; i < 6; i++)
sum += v[i];
return sum;
}
int main(void)
{
ios_base::sync_with_stdio(false); cin.tie(NULL);
ll T, N, i;
cin >> T;
while (T--)
{
cin >> N;
vector <ll> v(6);
for (i = 0; i < 6; i++)
cin >> v[i];
ll cnt = 1;
while (true)
{
if (SUM(v) > N) break;
v = change(v);
cnt++;
}
cout << cnt << "\n";
}
}
감사합니다.