Cod sursa(job #35120)

Utilizator andrewgPestele cel Mare andrewg Data 21 martie 2007 20:36:57
Problema Diamant Scor 70
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.31 kb
const maxv = 30000;

type shir = array[-maxv..maxv]of longint;

var f:text;
    p,q,kk,i,j,max,min:longint;
    c,d:shir;

procedure readdata;
begin
   assign(f,'diamant.in');
   reset(f);
   readln(f,p,q,kk);
   c[0]:=1;
   close(f);
end;

procedure add(k:longint);
begin
   if k>0 then
   begin
      for i:=max downto min do
      begin
         if c[i]<>0 then
         begin
            d[i+k]:=(d[i+k]+c[i]) mod 10000;
         end;
         if i+k>max then max:=i+k;
         if i+k<min then min:=i+k;
      end;
   end
      else
   begin
      for i:=min to max do
      begin
         if c[i]<>0 then
         begin
            d[i+k]:=(d[i+k]+c[i])mod 10000;
         end;
         if i+k>max then max:=i+k;
         if i+k<min then min:=i+k;
      end;
   end;
end;

procedure solve;
var i,j,l:longint;
begin
   max:=0;
   min:=0;
   for i:=1 to p do
   begin
      for j:=1 to q do
      begin
         fillchar(d,sizeof(d),0);
         add(i*j);
         add(-i*j);
         add(0);
         for l:=max downto min do
         begin
            c[l]:=d[l];
         end;
      end;
   end;
end;

procedure writedata;
begin
   assign(f,'diamant.out');
   rewrite(f);
   writeln(f,c[kk]);
   close(f);
end;

begin
   readdata;
   solve;
   writedata;
end.