CON - Vòng tròn số
Tác giả: flashmt
Ngôn ngữ: Pascal
const max=100000;
var n,sum:longint;
a,b:array[1..max] of longint;
procedure rf;
var i:longint;
begin
readln(n);
sum:=0;
for i:=1 to n do
begin
read(b[i]);
sum:=sum+b[i];
end;
sum:=sum div 3;
end;
procedure pr;
var t,u,i:longint;
begin
t:=0; u:=0;
if n mod 3 = 1 then
begin
for i:=1 to n div 3 do
begin
t:=t+b[i*3];
u:=u+b[i*3+1];
end;
a[1]:=sum-t;
a[2]:=sum-u;
for i:=3 to n do
a[i]:=b[i-1]-a[i-1]-a[i-2];
end
else
begin
if n mod 3 = 2 then
begin
for i:=1 to n div 3 do
begin
t:=t+b[i*3+2];
u:=u+b[i*3+3];
end;
u:=u+b[1];
a[1]:=b[2]+t-sum;
a[2]:=b[3]+u-sum;
for i:=3 to n do
a[i]:=b[i-1]-a[i-1]-a[i-2];
end
else
begin
a[1]:=0;
a[2]:=0;
for i:=3 to n do
a[i]:=b[i-1]-a[i-1]-a[i-2];
end;
end;
end;
procedure wf;
var i:longint;
begin
for i:=1 to n do write(a[i],' ');
end;
begin
rf;
pr;
wf;
end.