Program Zad1; type niz=array[1..50]of integer; var a,b:niz; n,m:integer;s,t:boolean; procedure UnosNiza(var a:niz; n:integer); var i,pozicija,x,k,j:integer; begin readln(a[1]); for i:=2 to n do begin readln(x); j:=1; while(j<=i-1)and(a[j]<=x) do j:=j+1; for k:=i-1 downto j do a[k+1]:=a[k]; a[j]:=x; end; end; procedure SpojNiz(var a,b:niz;var n,m:integer); var i,j,k:integer; z:niz; begin i:=1; j:=1; k:=1; while(i<=n)and(j<=m)do begin if(a[i]<=b[j]) then begin z[k]:=a[i]; k:=k+1; i:=i+1; end else begin z[k]:=b[j]; k:=k+1; j:=j+1; end; end; while(i<=n) do begin z[k]:=a[i]; k:=k+1; i:=i+1; end; while(j<=m) do begin z[k]:=b[j]; k:=k+1; j:=j+1; end; for i:=1 to n+m do a[i]:=z[i]; n:=n+m; end; function DaLiSuSusedni(x:niz; n:integer):boolean; var i:integer; t:boolean; begin for i:=2 to n do begin if x[i]<>x[i-1]+1 then begin t:=false; break; end else t:=true; end; DaLiSuSusedni:=t; end; function DaLiJeAritmeticki(x:niz; n:integer):boolean; var i:integer; s:boolean; razlika:integer; begin razlika:=abs(x[1]-x[2]); for i:=2 to n do begin if abs(x[i]-x[i+1])<>razlika then begin s:=false; break; end else s:=true; end; DaLiJeAritmeticki:=s; end; procedure IspisNiza(a:niz; n:integer); var i:integer; begin writeln(n); for i:=1 to n do write(a[i],' '); writeln; end; begin readln(n); UnosNiza(a,n); readln(m); UnosNiza(b,m); SpojNiz(a,b,n,m); IspisNiza(a,n); t:=DaLiSuSusedni(a,n); if t=true then writeln ('susedni su') else writeln('nisu'); s:=DaLiJeAritmeticki(a,n); if s=true then writeln('aritmeticki niz je') else writeln('nije'); end.