Skip to content

Instantly share code, notes, and snippets.

@crazydiver
Created October 2, 2018 06:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save crazydiver/34b75a4d9c996f0add9bc614b02641dc to your computer and use it in GitHub Desktop.
Save crazydiver/34b75a4d9c996f0add9bc614b02641dc to your computer and use it in GitHub Desktop.
delete dupls
type
mas = array[1..10000] of longint;
procedure vvod (var n :longint; var A :mas);
var
i :longint;
begin
readln (n);
for i:=1 to n do
read (A[i]);
end;
procedure HalfWork (n :longint; var A :mas);
var
i, k :longint;
begin
for i:=1 to n do
if A[i]<>0 then
for k:=i+1 to n do
if A[k]=A[i] then
A[k] := 0;
end;
procedure LastWork (n :longint; var A :mas);
var
i, m, k, iterAmm :longint; leftnull :boolean;
begin
iterAmm := 0;
leftnull := false;
for i:=1 to n do
if a[i]=0 then
leftnull := true
else
if leftnull then
iterAmm += 1;
for i := 1 to iterAmm do
begin
m := 1;
k := 1;
while a[k]<>0 do
k += 1;
m:=k;
while a[m]=0 do
m+=1;
a[k] := a[m];
a[m] := 0;
end;
end;
procedure GiveItToMe (n :longint; A :mas);
var
i :longint;
begin
for i:=1 to n do
write (A[i], ' ');
end;
var
n :longint; A :mas;
begin
Vvod (n, A);
halfWork (n, A);
LastWork (n, A);
GiveItToMe (n, A);
end.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment