洛谷P3817 小A的糖果 Java

贪心、水题、特别水
1-n堆糖果,从前到后,吃后边的,从后到前,吃前边的
数据会很大 , 所以这里用的BigInteger
用long当然也行,放在下边

import java.math.BigInteger;
import java.util.*;
class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int x = sc.nextInt();
        BigInteger res = BigInteger.valueOf(0);
        StringBuilder str = new StringBuilder();
        int[] nums = new int[n+1];
        for(int i = 1 ; i <= n ; i++)
        {
            nums[i] = sc.nextInt();
        }
        for(int i = 1 ; i < n ; i++)
        {
            if(nums[i] + nums[i+1] > x)
            {
                BigInteger big = BigInteger.valueOf(((nums[i]+nums[i+1]) - x));
                //这里加完之后一定不要忘记再赋值给res
                //如果写 res.add(big); res是没有值的
                res = res.add(big);
                nums[i+1] = x - nums[i];
            }
        }
        System.out.println(res);
    }
}
import java.math.BigInteger;
import java.util.*;
class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int x = sc.nextInt();
        long res = 0;
        int[] nums = new int[n+1];
        for(int i = 1 ; i <= n ; i++)
        {
            nums[i] = sc.nextInt();
        }
        for(int i = 1 ; i < n ; i++)
        {
            if(nums[i] + nums[i+1] > x)
            {
                res += (nums[i]+nums[i+1]) - x; 
                nums[i+1] = x - nums[i];
            }
        }
        System.out.println(res);
    }
}

猜你喜欢

转载自blog.csdn.net/qq_45260619/article/details/105642418