Algorithm/백준
C++ 알고리즘 - 백준 13305 주유소
마루설아
2025. 2. 10. 14:27
https://www.acmicpc.net/problem/13305
#include <bits/stdc++.h>
#define endl "\n"
using namespace std;
/******** 전역변수 ********/
/******** 함 수 ********/
int main(void) {
/******** C++ INIT ********/
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
/******** 지역변수 ********/
int input1;
long long num;
long long answer = 0;
long long i, j;
vector<long long> distance;
vector<long long> liter;
/******** 구 현 ********/
cin >> input1;
for (i = 0; i < input1 - 1; i++) {
cin >> num;
distance.push_back(num);
}
for (i = 0; i < input1; i++) {
cin >> num;
liter.push_back(num);
}
// 첫 주유소는 무조건 주유를 해야하기 때문에 첫 거리 리터당 주유금액 계산
answer += distance[0] * liter[0];
for (i = 0; i < liter.size() - 1;) {
for (j = i + 1; j < liter.size() - 1; j++) {
// 다음 목적지의 주유금액이 더 비싸다면 이전 주유소에서 주유
if (liter[i] < liter[j]) {
answer += distance[j] * liter[i];
continue;
}
// 다음 목적지의 주유금액이 더 싸다면 다음 행선지로 출발
else {
i = j;
break;
}
}
// 목적지에 도달하지 않은 상태인지 검증 / 아직 목적지가 아니라면 주유
if (j < distance.size()) answer += distance[j] * liter[i];
else break;
}
cout << answer;
}