再遇四渠注水問題!

 

題意及思路

題意:略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();
    }
}
相關文章
相關標籤/搜索