#include #include #include #include #include #include #include #include #include #include #include #define mem(a,b) memset(a,b,sizeof(a)) #define rep(i,a,n) for(int i=a; i=a; i--) #define sd(a) scanf("%d",&a) #define sll(a) scanf("%I64d",&a) #define test(a) cout<= 0; --l) { if(l - z*x >= 0) dp[i][l] = min(dp[i][l-z*x] + z*k[j], dp[i][l]); else { dp[i][l] = min(dp[i][l], z*k[j]); } } } } } ll ans = 0; for(int i = 0; i < n; ++i) { if(dp[b[i]][a[i]] == INF) { ans = -1; break; } else{ ans += dp[b[i]][a[i]]; } } printf("%I64d\n", ans); } } int main() { #ifdef local freopen("in","r",stdin); #endif // int t; // sd(t); // while(t--){ solve(); // } return 0; }