砝码称重II
Time Limit:1000MS Memory Limit:65536K
Total Submit:81 Accepted:57
Description
设有1克、2克、5克、10克、20克、50克的法码各若干枚,问使用这些法码可称出多少种不同的重量,设法码的总重量不超过10000克。
Input
Output
Sample Input
10 5 0 10 20 5
Sample Output
770
Source
elba
-
const v:array[1..6]of longint=(1,2,5,10,20,50); var b:array[0..1000]of boolean; a,f:array[0..1000]of longint; n,m,i,j,k,s:longint; function max(x,y:longint):longint; begin if x>y then exit(x) else exit(y); end; begin for i:=1 to 6 do read(a[i]); for i:=1 to 6 do for j:=1000 downto 1 do for k:=1 to a[i] do begin if j>=v[i]*k then begin f[j]:=max(f[j],f[j-k*v[i]]+k*v[i]); b[f[j]]:=true; end; end; for i:=1 to 1000 do if b[i] then inc(s); writeln(s); end.