Cod sursa(job #124937)

Utilizator al3csutzuSirbu Alexandru al3csutzu Data 20 ianuarie 2008 10:29:19
Problema Gardieni Scor 20
Compilator fpc Status done
Runda preONI 2008, Runda 3, Clasa a 10-a Marime 0.97 kb
program gardieni;
var x:array[1..1000001,1..20] of word;
op:array[1..1000000,1..20] of char;
nr:array[1..1000000] of longint;
a:array[1..1000000] of longint;
aux:array[1..10] of word;
rez:int64;
n,i,t,a1,a2,j,k,min:longint;
f,g:text;
begin
  assign(f,'gardieni.in'); assign(g,'gardieni.out');
  reset(f); rewrite(g);
  read(f,n,t);
  for i:=1 to n do
  begin
    read(f,a1,a2,a[i]);
    nr[a1]:=nr[a1]+1; x[a1,nr[a1]]:=i; op[a1,nr[a1]]:='S';
    nr[a2+1]:=nr[a2+1]+1; x[a2+1,nr[a2+1]]:=i; op[a2+1,nr[a2+1]]:='T';
  end;
  for i:=1 to t do
  begin
    if nr[i]<>0 then
    for j:=1 to nr[i] do
    begin
      if op[i,j]='S' then begin k:=1; while aux[k]<>0 do k:=k+1; aux[k]:=x[i,j]; end;
      if op[i,j]='T' then begin k:=1; while aux[k]<>x[i,j] do k:=k+1; aux[k]:=0; end;
    end;
    min:=1050000;
    for j:=1 to 10 do
      if aux[j]<>0 then if a[aux[j]]<min then min:=a[aux[j]];
    rez:=rez+min;
  end;
  writeln(g,rez);
  close(f); close(g);
end.