#include <iostream>
#include <string>
#include <vector>
using namespace std;
int bridge_length = 100, weight = 100;
vector<int> truck_weights;
int solution() {
int answer = 0; // 초
vector<int> bridge; // 다리 위 트럭들
int bridge_w = 0; // 다리 위 트럭의 무게 합
for (;; answer ++) // 한 텀마다 계속 초 증가
{
if (bridge.size() != 0) //다리위 트럭이 있다면, 트럭 내리기
{
int x = bridge[0];
bridge_w -= x;
bridge.erase(bridge.begin());
}
int x = truck_weights[0]; // 대기열에 가장 앞에 있는 트럭
if (bridge_w + x > weight) // 만약 트럭의 무게가 초과한다면 트럭을 그만 올리기
{
break;
}
if (bridge.size() >= weight) // 만약에 다리에 트럭이 꽉 찼다면
{
break;
}
bridge.push_back(x); // 다리에 입장
truck_weights.erase(truck_weights.begin()); // 대기열에서 삭제
bridge_w += x; // 다리 위 트럭 무게의 총 합
if(truck_weights.size()==0) break;
if (truck_weights.size() == 0 && bridge.size() == 0)
{
break;
}
for (int q = 0 ; q < bridge.size() ; q ++)
{
cout << "bridge : ";
cout << bridge[q] << endl;
}
cout << " "<< endl;
for (int p = 0 ; p < truck_weights.size() ; p ++)
{
cout << "truck_weights : ";
cout << truck_weights[p] << endl;
}
cout << " "<< endl;
}
return answer;
}
int main()
{
truck_weights.push_back(10);
truck_weights.push_back(10);
truck_weights.push_back(10);
truck_weights.push_back(10);
truck_weights.push_back(10);
truck_weights.push_back(10);
truck_weights.push_back(10);
truck_weights.push_back(10);
truck_weights.push_back(10);
truck_weights.push_back(10);
truck_weights.push_back(10);
int sol =solution();
cout<<sol + 1;
}