Cod sursa(job #413836)

Utilizator voncidCostin Iulian voncid Data 9 martie 2010 11:05:30
Problema ADN Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.67 kb
program politie;
type inreg=record
            tip,timp:integer;
         end;
vector=array[1..50] of inreg;
var f,g:text;
    t,t1,t2,t3,s1,s2,s3,n,i,j,a,x,x1,x2:integer;
    v:vector;
    ok:boolean;

procedure verif(time:integer; dur:integer);
  begin
      if ( v[i+1].timp<time+dur ) and (time+dur<t) then
        if v[i+1].tip=3 then
          begin
           x:=x+t3; x1:=x; x2:=x;
           a:=a+s3;
          end
        else
   {!!}   begin

           if v[i+1].tip=2 then
             begin
              x1:=x+t1;
              x2:=x+t2;
              if x1>x2 then x:=x1
                       else x:=x2;
              a:=a+s1+s2;
             end
           else
            if v[i+1].tip=1 then
             begin
               x1:=x+t1; x2:=x1;
               a:=a+s1+s2;
             end
            else
              begin
                if v[n].tip=1 then a:=a+s1;
                if v[n].tip=2 then a:=a+s2;
                if v[n].tip=3 then a:=a+s3;
              end;

          end;
      while v[i].timp<x do
       begin
        i:=i+1;
       end;
  x:=v[i].timp;
  end;


begin
assign(f,'politie.in');reset(f);
assign(g,'politie.out');rewrite(g);
readln(f,t);
readln(f,s1,t1); readln(f,s2,t2); readln(f,s3,t3);
readln(f,n);
for i:=1 to n do
 readln(f,v[i].tip,v[i].timp);

a:=0;
x:=v[1].timp; x1:=x; x2:=x;
i:=1;
ok:=false;
while i<n do
 begin
  if v[i].tip=1 then
    begin
      verif(v[i].timp,t1);
    end;

  if v[i].tip=2 then
    begin
      verif(v[i].timp,t2);
    end;

  if v[i].tip=3 then
    begin
      verif(v[i].timp,t3);
    end;
end;

write(g,a);

close(f);
close(g);
end.