Pagini recente » Cod sursa (job #2939644) | Cod sursa (job #1411155) | pre106 | Cod sursa (job #108861) | Cod sursa (job #197586)
Cod sursa(job #197586)
var f,g:text; da:boolean;
x,y,z,nx:array[1..2000] of longint;
nr,n,i,j,m,nn,s:longint;
begin
assign(f,'reconst.in'); reset(f);
assign(g,'reconst.out'); rewrite(g);
read(f,n,m);
for i:=1 to m do
read(f,x[i],y[i],z[i]);
for i:=1 to m-1 do
for j:=i+1 to m do
if (x[i]>x[j]) or ((x[i]=x[j]) and (y[i]>y[j]))
then
begin
nr:=x[i]; x[i]:=x[j]; x[j]:=nr;
nr:=y[i]; y[i]:=y[j]; y[j]:=nr;
nr:=z[i]; z[i]:=z[j]; z[j]:=nr;
end;
for i:=1 to m-1 do
if (x[i]=x[i+1]) and (y[i]=y[i+1]-1)
then nx[y[i+1]]:=z[i+1]-z[i]
else if (x[i]=x[i+1]-1) and (y[i]=y[i+1])
then nx[x[i]]:=z[i]-z[i+1];
da:=false;
repeat
for i:=1 to m do
begin
s:=0; nn:=0;
for nr:=x[i] to y[i] do
if nx[nr]<>0 then s:=s+nx[nr] else inc(nn);
if nn=1
then
for nr:=x[i] to y[i] do
if nx[nr]=0 then begin nx[nr]:=z[i]-s; break; end;
end;
da:=true;
for i:=1 to n do if nx[i]=0 then begin da:=false; break; end;
until da;
for i:=1 to n do write(g,nx[i],' ');
close(f); close(g);
end.