Pagini recente » Cod sursa (job #1168229) | Cod sursa (job #1765438) | Cod sursa (job #3255850) | Cod sursa (job #2910238) | Cod sursa (job #7324)
Cod sursa(job #7324)
const
FIN = '1-sir.in';
FOUT = '1-sir.out';
NMAX = 75;
PRIM = 194767;
type
matrix = array[ -NMAX..NMAX, -NMAX * NMAX..NMAX*NMAX ] of longint;
var A : array[ 0..1 ] of matrix;
f, g : text;
N, K, I, J, S, o, oo, ans : longint;
begin
assign( f, FIN ); reset( f );
readln( f, N, S );
if ( S > ( ( n - 1 ) * n ) div 2) or ( s < - ((n-1)*n) div 2 ) then
begin
assign( g, FOUT ); rewrite( g ); writeln( g, 0 );
close( g );
halt;
end;
close( f );
o := 0; oo := 1;
A[o][0][0] := 1;
for i := 2 to N do
begin
for k := - abs( S ) to abs( S ) do
for j := - N to N do
begin
A[oo][j][k] := 0;
if ( abs(K - j) <= abs(S) ) and ( abs(j - 1) <= N ) then A[oo][j][k] := A[o][j-1][k-j];
if ( abs(K - j) <= abs(S) ) and ( abs(j + 1) <= N ) then inc( A[oo][j][k], A[o][j+1][k-j] );
if A[oo][j][k] >= PRIM then dec( A[oo][j][k], PRIM );
end;
o := 1 - o;
oo := 1 - oo;
end;
ans := 0;
for j := - N to N do
begin
ans := ans + A[o][j][S];
if ans >= PRIM then dec( ans, PRIM );
end;
assign( g, FOUT );
rewrite( g);
writeln( g, ans );
close( g );
end.