Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <algorithm>
- #include <iostream>
- #include <vector>
- using namespace std;
- int solve(vector<int> &time, vector<int> &charge, int charge_limit, int current_charge, int i) {
- if (i == time.size()) return 0;
- // Se posso eventualmente skippare utilizzando la carica
- if (current_charge >= charge_limit) {
- int skip = time.at(i) + solve(time, charge, charge_limit, current_charge + charge.at(i), i + 1);
- int no_skip = solve(time, charge, charge_limit, 0, i + 1);
- return min(skip, no_skip);
- }
- return time.at(i) + solve(time, charge, charge_limit, current_charge + charge.at(i), i + 1);
- }
- int main() {
- freopen("input.txt", "r", stdin);
- freopen("output.txt", "w", stdout);
- int N, C;
- cin >> N >> C;
- vector<int> time(N);
- vector<int> charge(N);
- for (int &t : time) {
- cin >> t;
- }
- for (int &c : charge) {
- cin >> c;
- }
- cout << solve(time, charge, C, 0, 0);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement