program Szigetes; uses crt; const maxn=100; type tomb=array[1..maxn] of integer; rec=record kezdet:integer; veg:integer; end; szi=array[1..maxn] of rec; var x:tomb; sziget:szi; tk,tv:integer; hiba:boolean; van:boolean; n,db:integer; procedure beolvas(var n:integer;var x:tomb); var i:integer; begin write('Adja meg a m‚r‚sek sz m t:');readln(n); for i:=1 to n do begin write('Adja meg az ',i,'. m‚r‚s eredm‚ny‚t: '); readln(x[i]); end; end; function tengerkezdet(const x:tomb;const n:integer):integer; {} var i:integer; begin i:=1; while (x[i]>0) and (i<=n) do i:=i+1; if i<=n then tengerkezdet:=i else hiba:=true; end; function tengerveg(const x:tomb;const n:integer):integer; {} var i:integer; begin i:=n; while (x[i]>0) and (i>tk) do i:=i-1; if i>tk then tengerveg:=i else hiba:=true; end; function vansz:boolean; {} var i:integer; begin i:=tk; while (x[i]=0) and (i0) and (x[i-1]=0) then begin db:=db+1;sziget[db].kezdet:=i; end; if (x[i]>0) and (x[i+1]=0) then begin sziget[db].veg:=i; end; end; end; procedure hosszhasonlitas(const db:integer;var van:boolean); var i,j:integer; szhi,szhj:integer; begin van:=false; i:=1; while (i<=db-1) and not(van) do begin j:=i+1; while (j<=db) and not(van) do begin szhi:=sziget[i].veg-sziget[i].kezdet+1; szhj:=sziget[j].veg-sziget[j].kezdet+1; if (szhi=szhj) then van:=true; j:=j+1; end; i:=i+1; end; end; procedure kiir; begin if van then writeln('Voltak ilyen szigetek!') else writeln('Nem voltak ilyen szigetek!'); end; begin hiba:=false; clrscr; beolvas(n,x); {} tk:=tengerkezdet(x,n); {} tv:=tengerveg(x,n); {} if not(hiba) then {} begin if (vansz) then {} begin szigetgyujtes(tk,tv,sziget,db); {} hosszhasonlitas(db,van); {} end; kiir; {} end; write('Valamelyik adat nem volt megfelel‹'); readkey; end.