0
点赞
收藏
分享

微信扫一扫

幸运的袋子

ivy吖 2022-03-11 阅读 41
import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            int n = sc.nextInt();
            int[] arr = new int[n];
            for(int i = 0; i < n; i++){
                arr[i] = sc.nextInt();
            }
            Arrays.sort(arr);
            int res = luckyBag(arr, n, 0, 0, 1);//0, 0, 1表示从下标0开始, 和为0, 积为1
            System.out.println(res);
        }
    }
    public static int luckyBag(int[] arr, int n, int start, int sum, int mul){
        int count = 0;
        for(int i = start; i < n; i++){
            sum += arr[i];
            mul *= arr[i];
            if(sum > mul){
                count += + 1 + luckyBag(arr, n, i + 1, sum, mul);
            }else if(arr[i] == 1){
                count += luckyBag(arr, n, i + 1, sum, mul);
            }else{
                break;
            }
            sum -= arr[i];
            mul /= arr[i];
            while(i < n - 1 && arr[i] == arr[i + 1]){
                i++;
            }
        }
        return count;
    }
}
举报

相关推荐

0 条评论