const fs = require("fs");
const input = fs.readFileSync("/dev/stdin").toString().trim().split("\n");
const N = Number(input[0]);
let cityDistanceArr = input[1].split(" ").map(Number);
let oilPriceArr = input[2].split(" ").map(Number);
let answer = BigInt(0);
let minValue = Number.MAX_SAFE_INTEGER;
for (let i = 0; i < N; i++) {
if (oilPriceArr[i] < minValue) {
minValue = oilPriceArr[i];
} else if (oilPriceArr[i] > minValue) {
oilPriceArr[i] = minValue;
}
}
for (let i = 0; i < N - 1; i++) {
answer += BigInt(cityDistanceArr[i]) * BigInt(oilPriceArr[i]);
}
console.log(answer.toString());
여기서 핵심은 가장 리터당 기름 가격이 저렴한 도시는 최대한 많이 가주어야하고,
가장 비싼 도시라면 최대한 짧게 가주어야한다는 것이다.
반복문을 돌면서 리터당 기름이 가장 적은 도시라면, 다음 도시들도 더 작은 기름 값을 가진 도시를 만나기 전까지는 해당 기름 가격으로 바꾸어준다.
그리고 제한사항이 10억까지의 숫자가 들어올수 있으니 BigInt형의 자료형을 사용해서 계산해준다.