Cod sursa(job #7154)

Utilizator alextheroTandrau Alexandru alexthero Data 21 ianuarie 2007 12:53:20
Problema 1-sir Scor 10
Compilator fpc Status done
Runda preONI 2007, Runda 1, Clasele 11-12 Marime 1.48 kb
program test;
type
        ma=array[-256..256,-10000..10000] of longint;
const
        fin='1-sir.in';
        fout='1-sir.out';
        modulo = 194767;
var
        x,n,s,maxsuma,i,j,k:longint;
        prev,new:ma;
begin
        assign(input,fin);
        reset(input);
        readln(n,s);
        close(input);
        prev[0][0]:=1;
        assign(output,fout);
        rewrite(output);
        if(s>n*(n-1) div 2) then begin
                writeln(0);
                close(output);
                exit;
        end
        else begin
             maxsuma:=n * (n-1) div 2;
             if(maxsuma mod 2 <> s mod 2) then begin
                writeln(0);
                close(output);
                exit;
             end;
        end;
        for i:=1 to n-1 do begin
                for j:=-n to n do
                        for k:=-n*n to n*n do
                                new[j][k]:=0;
                for j:=-n to n do
                        for k:=-n*n to n*n do begin
                                new[j+1][k+j+1]:=(new[j+1][k+j+1]+prev[j][k]) mod modulo;
                                new[j-1][k+j-1]:=(new[j-1][k+j-1]+prev[j][k]) mod modulo;
                        end;
                for j:=-n to n do
                        for k:=-n*n to n*n do
                                prev[j][k]:=new[j][k];
        end;
        for i:=-n to n do
                x:=(x+new[i][s]) mod modulo;
        writeln(x);
        close(output);
end.