Cod sursa(job #156142)

Utilizator claudiu_syclaudiu claudiu_sy Data 12 martie 2008 13:07:09
Problema Gardieni Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.25 kb
type doua=record
     verif:integer;
     nr:integer;
     end;
vector=array [1..5000] of doua;
var a:array [1..5000,1..3] of integer;
    c:vector;
    aux:array [1..5000] of integer;
    i,j,k,n,t,p,s:integer;
    f,g:text;

procedure min;
var l,mi:integer;
begin
mi:=5000;
for l:=1 to n do
    if a[l,3]< mi then
       begin
       mi:=a[l,3];
       p:=l;
       end;
end;
function verifica:boolean;
var d:integer;
    ok:boolean;
begin
ok:=false;
for d:=1 to n do
    if a[d,3]<5000 then
       ok:=true;
verifica:=ok;
end;


begin
assign(f,'gardieni.in');
assign(g,'gardieni.out');
reset(f);
rewrite(g);
readln(f,n,t);
for i:=1 to n do
    readln(f,a[i,1],a[i,2],a[i,3]);

for i:=1 to n-1 do
    for j:=i+1 to n do
        if (a[i,1]>a[j,i]) then
           for k:=1 to 3 do
               begin
               aux[k]:=a[i,k];
               a[i,k]:=a[j,k];
               a[j,k]:=aux[k];
               end;
for i:=1 to t do
    c[i].verif:=0;

while verifica do
begin
min;
for i:=a[p,1] to a[p,2] do
    if c[i].verif=0 then
       begin
       c[i].verif:=1;
       c[i].nr:=a[p,3];
       end;
a[p,3]:=5000;
end;
s:=0;
for i:=1 to t do
    s:=s+c[i].nr;
writeln(g,s);
close(f);
close(g);
end.