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;
}
'알고리즘' 카테고리의 다른 글
C++ 알고리즘 - 14501 퇴사 (0) | 2025.02.12 |
---|---|
C++ 알고리즘 - 1244 스위치 켜고 끄기 (0) | 2025.02.10 |
C++ 알고리즘 - 17478 재귀함수가 뭔가요? (1) | 2025.02.10 |
C++ 알고리즘 - 2559 수열 (0) | 2025.01.28 |
C++ 알고리즘 - 2156 포도주 시식 (0) | 2025.01.24 |