Pagini recente » Cod sursa (job #2558882) | Cod sursa (job #3039927) | Cod sursa (job #2466012) | Cod sursa (job #3147599) | Cod sursa (job #82208)
Cod sursa(job #82208)
program cifre;
const
fin='cifre.in';
fout='cifre.out';
var
a,b,c,k,i,j,n,x,y:longint;
function f(x:longint):longint;
var
s,lg,a,b,nr,i:longint;
st,aa:array[1..10] of longint;
procedure back(num:integer);
var
x,i:longint;
begin
if (num=lg+1)and(nr>=k) then
begin
x:=1;
for i:=1 to lg do
x:=x*st[i];
inc(s,x);
end
else if (num<lg+1) then
begin
inc(nr);
if aa[num]>=c then
begin
st[num]:=1;
back(num+1);
end;
dec(nr);
st[num]:=aa[num]+1;
if aa[num]>=c then
dec(st[num]);
back(num+1);
end;
end;
begin
a:=x;lg:=0;
while a>0 do
begin
a:=a div 10;
inc(lg);
end;
for i:=lg downto 1 do
begin
aa[i]:=x mod 10;
x:=x div 10;
end;
s:=0;nr:=0;
back(1);
f:=s;
end;
begin
assign(input,fin);
reset(input);
readln(a,b,c,k);
close(input);
assign(output,fout);
rewrite(output);
writeln((f(b)-f(a-1))/(b-a+1):0:4);
close(output);
end.