안녕하세요. 오늘은 욕심쟁이 돼지를 만날 거예요.

문제

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";
    }
}


감사합니다.

0개의 댓글