1일1알

백준 3060번 욕심쟁이 돼지 C++ 본문

알고리즘

백준 3060번 욕심쟁이 돼지 C++

영춘권의달인 2023. 5. 3. 21:32

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

 

3060번: 욕심쟁이 돼지

입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터는 두 줄로 구성되어 있고, 첫째 줄에는 하루에 배달되는 사

www.acmicpc.net

 

#include <iostream>
#include <string>
#include <vector>
#include <math.h>
#include <algorithm>
#include <utility>
#include <stack>
#include <queue>
#include <math.h>
#include <set>
#include <map>
#include <list>
#include <unordered_map>
#include <unordered_set>
#include <iomanip>
#include <limits.h>

using namespace std;
using int64 = long long;

vector<int64> lastV(6);
vector<int64> currV(6);

int t;

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    cin >> t;
    while (t--) {
        int64 n;
        cin >> n;
        for (int i = 0; i < 6; i++) cin >> lastV[i];
        int day = 1;
        while (true) {
            int64 sum = 0;
            for (int i = 0; i < 6; i++) sum += lastV[i];
            if (sum > n) break;
            for (int i = 0; i < 6; i++) {
                int64 currVal = lastV[i];
                currVal += lastV[(i + 1) % 6];
                currVal += lastV[(i + 3) % 6];
                currVal += lastV[(i + 5) % 6];
                currV[i] = currVal;
            }
            for (int i = 0; i < 6; i++) lastV[i] = currV[i];
            day++;
        }
        cout << day << "\n";
    }
}

'알고리즘' 카테고리의 다른 글

백준 17829번 222-풀링 C++  (0) 2023.05.05
백준 2508번 사탕 박사 고창영 C++  (0) 2023.05.04
백준 2799번 블라인드 C++  (0) 2023.05.02
백준 4108번 지뢰찾기 C++  (0) 2023.04.30
백준 23843번 콘센트 C++  (0) 2023.04.29