//g++ -std=c++11 -O2 -Wall microwave.cpp -o microwave
#include <bits/stdc++.h>
using namespace std;
//Globals
//Funks
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
//COMMENCE CODE
unsigned int n;
cin >> n;
unsigned int ranges [n];
for(unsigned int r = 0; r < n; r++)
{
cin >> ranges[r];
}
unsigned long priceToGetHere [n];
priceToGetHere[0] = 0;
priceToGetHere[n] = 9223372036854775807;
unsigned int prices [n];
for(unsigned int r = 1; r < n; r++)
{
cin >> prices[r];
priceToGetHere[r] = 9223372036854775807;
}
//Input collected, lets do stuff
unsigned int curPos = 0;
prices[0] = 0;
unsigned int setEnd = 0;
unsigned int maxrange;
unsigned long adj;
while(priceToGetHere[n] != priceToGetHere[curPos])
{
maxrange = min(ranges[curPos], n - curPos);
adj = priceToGetHere[curPos] + prices[curPos];
if(adj < priceToGetHere[curPos+1])
{
for(unsigned int r = 1; r <= maxrange; r++)
{
priceToGetHere[curPos + r] = adj;
}
setEnd = maxrange;
}
else
{
for(unsigned int r = setEnd + 1; r <= maxrange; r++) //!
{
if(adj < priceToGetHere[curPos + r])
{
while(x <= maxrange)
{
priceToGetHere[curPos + r] = adj;
r++;
}
}
}
}
if(setEnd > 0)
{
setEnd--;
}
curPos++;
}
cout << priceToGetHere[n];
}