#include <iostream>
#include <vector>
#include <algorithm>
#define int long long
using namespace std;
bool canCompleteRace(const vector<int>& fuel, const vector<int>& time, int fuelCapacity, int timeLimit) {
int n = fuel.size();
long long currentFuel = fuelCapacity;
long long currentTime = 0;
for (int i = 0; i < n; i++) {
// Kiểm tra xem xe có thể đi tiếp đến trạm xăng i+1 không
if (currentFuel < fuel[i])
return false;
// Trừ đi lượng xăng đã tiêu hao để đi đến trạm xăng i+1
currentFuel -= fuel[i];
// Đổ lại đủ xăng tại trạm xăng i+1 nếu cần
long long fuelNeeded = max(0LL, fuel[i+1] - currentFuel);
currentFuel += fuelNeeded;
currentTime += fuelNeeded * time[i];
// Tính thời gian cần để đổ xăng tại trạm xăng i+1
currentTime += (fuel[i+1] - fuelNeeded) * time[i];
}
return currentTime <= timeLimit;
}
long long minRefuelingTime(const vector<int>& fuel, const vector<int>& time) {
int n = fuel.size();
// Kiểm tra trường hợp đầu tiên: không có đủ xăng để đi từ trạm xăng 1 đến trạm xăng N
if (fuel[0] < fuel[n-1])
return -1;
long long left = 0;
long long right = 1e18;
long long minTime = -1;
while (left <= right) {
long long mid = left + (right - left) / 2;
if (canCompleteRace(fuel, time, fuel[0], mid)) {
minTime = mid;
right = mid - 1;
} else {
left = mid + 1;
}
}
return minTime;
}
main() {
int N;
cin >> N;
vector<int> fuel(N);
vector<int> time(N);
for (int i = 0; i < N; i++) {
cin >> fuel[i];
}
for (int i = 0; i < N; i++) {
cin >> time[i];
}
long long result = minRefuelingTime(fuel, time);
cout << result << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojZGVmaW5lIGludCBsb25nIGxvbmcKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmJvb2wgY2FuQ29tcGxldGVSYWNlKGNvbnN0IHZlY3RvcjxpbnQ+JiBmdWVsLCBjb25zdCB2ZWN0b3I8aW50PiYgdGltZSwgaW50IGZ1ZWxDYXBhY2l0eSwgaW50IHRpbWVMaW1pdCkgewogICAgaW50IG4gPSBmdWVsLnNpemUoKTsKCiAgICBsb25nIGxvbmcgY3VycmVudEZ1ZWwgPSBmdWVsQ2FwYWNpdHk7CiAgICBsb25nIGxvbmcgY3VycmVudFRpbWUgPSAwOwoKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgLy8gS2nhu4NtIHRyYSB4ZW0geGUgY8OzIHRo4buDIMSRaSB0aeG6v3AgxJHhur9uIHRy4bqhbSB4xINuZyBpKzEga2jDtG5nCiAgICAgICAgaWYgKGN1cnJlbnRGdWVsIDwgZnVlbFtpXSkKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwoKICAgICAgICAvLyBUcuG7qyDEkWkgbMaw4bujbmcgeMSDbmcgxJHDoyB0acOqdSBoYW8gxJHhu4MgxJFpIMSR4bq/biB0cuG6oW0geMSDbmcgaSsxCiAgICAgICAgY3VycmVudEZ1ZWwgLT0gZnVlbFtpXTsKCiAgICAgICAgLy8gxJDhu5UgbOG6oWkgxJHhu6cgeMSDbmcgdOG6oWkgdHLhuqFtIHjEg25nIGkrMSBu4bq/dSBj4bqnbgogICAgICAgIGxvbmcgbG9uZyBmdWVsTmVlZGVkID0gbWF4KDBMTCwgZnVlbFtpKzFdIC0gY3VycmVudEZ1ZWwpOwogICAgICAgIGN1cnJlbnRGdWVsICs9IGZ1ZWxOZWVkZWQ7CiAgICAgICAgY3VycmVudFRpbWUgKz0gZnVlbE5lZWRlZCAqIHRpbWVbaV07CgogICAgICAgIC8vIFTDrW5oIHRo4budaSBnaWFuIGPhuqduIMSR4buDIMSR4buVIHjEg25nIHThuqFpIHRy4bqhbSB4xINuZyBpKzEKICAgICAgICBjdXJyZW50VGltZSArPSAoZnVlbFtpKzFdIC0gZnVlbE5lZWRlZCkgKiB0aW1lW2ldOwogICAgfQoKICAgIHJldHVybiBjdXJyZW50VGltZSA8PSB0aW1lTGltaXQ7Cn0KCmxvbmcgbG9uZyBtaW5SZWZ1ZWxpbmdUaW1lKGNvbnN0IHZlY3RvcjxpbnQ+JiBmdWVsLCBjb25zdCB2ZWN0b3I8aW50PiYgdGltZSkgewogICAgaW50IG4gPSBmdWVsLnNpemUoKTsKCiAgICAvLyBLaeG7g20gdHJhIHRyxrDhu51uZyBo4bujcCDEkeG6p3UgdGnDqm46IGtow7RuZyBjw7MgxJHhu6cgeMSDbmcgxJHhu4MgxJFpIHThu6sgdHLhuqFtIHjEg25nIDEgxJHhur9uIHRy4bqhbSB4xINuZyBOCiAgICBpZiAoZnVlbFswXSA8IGZ1ZWxbbi0xXSkKICAgICAgICByZXR1cm4gLTE7CgogICAgbG9uZyBsb25nIGxlZnQgPSAwOwogICAgbG9uZyBsb25nIHJpZ2h0ID0gMWUxODsKICAgIGxvbmcgbG9uZyBtaW5UaW1lID0gLTE7CgogICAgd2hpbGUgKGxlZnQgPD0gcmlnaHQpIHsKICAgICAgICBsb25nIGxvbmcgbWlkID0gbGVmdCArIChyaWdodCAtIGxlZnQpIC8gMjsKCiAgICAgICAgaWYgKGNhbkNvbXBsZXRlUmFjZShmdWVsLCB0aW1lLCBmdWVsWzBdLCBtaWQpKSB7CiAgICAgICAgICAgIG1pblRpbWUgPSBtaWQ7CiAgICAgICAgICAgIHJpZ2h0ID0gbWlkIC0gMTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBsZWZ0ID0gbWlkICsgMTsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIG1pblRpbWU7Cn0KCm1haW4oKSB7CiAgICBpbnQgTjsKICAgIGNpbiA+PiBOOwoKICAgIHZlY3RvcjxpbnQ+IGZ1ZWwoTik7CiAgICB2ZWN0b3I8aW50PiB0aW1lKE4pOwoKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTjsgaSsrKSB7CiAgICAgICAgY2luID4+IGZ1ZWxbaV07CiAgICB9CgogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBOOyBpKyspIHsKICAgICAgICBjaW4gPj4gdGltZVtpXTsKICAgIH0KCiAgICBsb25nIGxvbmcgcmVzdWx0ID0gbWluUmVmdWVsaW5nVGltZShmdWVsLCB0aW1lKTsKICAgIGNvdXQgPDwgcmVzdWx0IDw8IGVuZGw7CgogICAgcmV0dXJuIDA7Cn0=