題意:略java
思路:每個i號英雄,盡本身所能消滅最多能消滅的怪物便可。spa
踩坑點:消滅的怪物數量可能超出了整形(int)範圍,因此不該該使用int,而應該使用long。這題和四渠注水問題相似,我再一次踩坑。發篇博客警示本身,不要再犯這種低級錯誤!code
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(); } }