알고리즘
백준 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";
}
}