题解 | #称砝码#
称砝码
http://www.nowcoder.com/practice/f9a4c19050fc477e9e27eb75f3bfd49c
public class Main {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
Set<Integer> set = new HashSet<>();
while(scanner.hasNext()){
int n = scanner.nextInt();
int[] w = new int[n];
int[] nums = new int[n];
List<Integer> list = new ArrayList<>();
for(int i=0;i<n;i++){
w[i] = scanner.nextInt();
}
for(int i=0;i<n;i++){
nums[i] = scanner.nextInt();
}
for(int i = 0; i < n;i++){
for(int j = 0; j < nums[i];j++){
list.add(w[i]);
}
}
set.add(0);
for(int i=0;i<list.size();i++){
List<Integer> list2 = new ArrayList<>(set);
for(int j=0;j<list2.size();j++){
set.add(list2.get(j)+list.get(i));
}
}
System.out.println(set.size());
}
}
}