题意及思路
题意:略
思路:每一个i号英雄,尽自己所能消灭最多能消灭的怪物即可。
踩坑点:消灭的怪物数量可能超出了整形(int)范围,所以不应该使用int,而应该使用long。这题和四渠注水问题类似,我再一次踩坑。发篇博客警示自己,不要再犯这种低级错误!
代码
import java.util.Scanner;
public class C {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int a[] = new int[n + 1];
int b[] = new int[n];
for (int i = 0; i < n + 1; i++) {
a[i] = in.nextInt();
}
for (int i = 0; i < n; i++) {
b[i] = in.nextInt();
}
long ans = 0;
for (int i = 0; i < n; i++) {
if (b[i] >= a[i]) {
ans += a[i];
b[i] -= a[i];
} else {
ans += b[i];
b[i] = 0;
}
if (b[i] >= a[i + 1]) {
ans += a[i + 1];
b[i] -= a[i + 1];
a[i + 1] = 0;
} else {
ans += b[i];
a[i + 1] -= b[i];
b[i] = 0;
}
}
System.out.println(ans);
in.close();
}
} 
京公网安备 11010502036488号