littlelee Admin
Tổng số bài gửi : 415 Join date : 20/12/2009 Age : 29 Đến từ : Nghĩa địa
| Tiêu đề: tongk Fri 16 Jul 2010, 16:17 | |
| - Code:
-
program so_n_chu_so_co_tong_bang_k; const fi='tongk.inp'; fo='tongk.out'; var l:array[0..4,0..5] of longint; i,j,n,m,k,g,gt,ht,h,cs,p:longint; f:text;
procedure nhap; begin assign(f,fi); reset(f); readln(f,n,k,p); close(f); end;
procedure qhd; begin for i:=0 to n do for j:=1 to k do l[i,j]:=0; for i:=0 to k do if i<=9 then l[1,i]:=1; for i:=1 to n do l[i,0]:=1;
for i:=2 to n do for j:=1 to k do for m:=0 to 9 do begin if j-m>=0 then l[i,j]:=l[i,j]+l[i-1,j-m]; if l[i,j]>1000000000 then l[i,j]:=1000000001; end; end;
procedure tinh; begin qhd;
l[0,0]:=1; g:=0; cs:=0; i:=0; while cs<p do begin inc(i); cs:=l[i,k]; end; cs:=i; gt:=0; h:=k; for i:=1 to cs do begin j:=-1; while (gt<p)and(j<9)and(j<h) do begin inc(j); ht:=gt; gt:=gt+l[cs-i,h-j]; end; {if gt>p then begin gt:=gt-l[i-1,k-j]; dec(j); end;} gt:=ht; g:=g*10+j; h:=h-j; end; end;
procedure xuat; begin assign(f,fo); rewrite(f); if l[i,j]<=1000000000 then writeln(f,l[n,k]) else writeln(f,'tren 10^9'); writeln(f,g); close(f); end;
begin nhap; tinh; xuat; end. | |
|
Hovanthong Admin
Tổng số bài gửi : 101 Join date : 25/07/2010 Age : 30 Đến từ : Hưng nguyên-Nghệ An
| Tiêu đề: Re: tongk Mon 26 Jul 2010, 21:53 | |
| - Trích dẫn :
- Bạn nên ghi đề cho người khác thấy với chứ!
| |
|