% -*- coding: iso-8859-2 -*-
\documentclass[a4paper]{article}
\usepackage{progm}
\analpacks
\analoldal{2. feladatsor, 2. feladat}
\newcommand{\PONT}{\text{PONT}}
\newcommand{\Beleesik}{\text{Beleesik}}
\begin{document}
\noindent
\emph{Feladat:} Adott a síkon több darab pont egy vektorban, keressük
meg az origótól legtávolabb eső pontot!

\emph{Specifikáció:}\\
$R_{\PONT} = (x:\Z, y:\Z)$ \\
$\V = \vect(\Z, R_{\PONT})$ \\
$A = \alatt{\V}{v} \times \alatt{\R_{\PONT}}{p} \left( \times \alatt{\Z}{i}\right)$\\
$B = \alatt{\V}{v'}$\\
$Q = ( v=v' \es v.dom\ge 1)$\\
$R' = ( Q \es i\in[v.\lob,v.\hib] \es \forall j\in[v.\lob,v.\hib]:t(j) \le t(i))$\\
$R = (R' \es p=x_i)$

Ahol $t(q):=v_q.x\cdot v_q.x+v_q.y\cdot v_q.y$.

Visszavezetés a maximum keresésre ($Q\kov \lf(S_1, R')$ bizonyítására), alteres általánosított (max):

\begin{tabular}{ccc}
  feladat &  & max. ker. \\
  \hline
  $v.\lob$ & \knyil & $m$ \\
  $v.\hib$ & \knyil & $n$ \\
  $t(i)$ & \knyil & $f(i)$
\end{tabular}

\begin{stuki}[8cm]
  \stm{i,k,max:=v.\lob,v.\lob, t(v.\lob)}
  \begin{WHILE}{3}{\stm{k\ne v.\hib}}
    \begin{IF}{1}{\stm{t(k+1) > max}}
    \stm{i,max:=k+1,t(k+1)}
    \ELSE
    \SKIP
    \end{IF}
    \stm{k:=k+1}
  \end{WHILE}
  \stm{p:=x_{i}}
\end{stuki}

\vspace{-1.3cm}\vbox{\hspace{4cm}$R'$}
\vspace{0.2cm}\vbox{\hspace{4cm}$R$}

\vspace{-4.3cm}$\left.\vbox{\vspace{1.7cm}}\hspace{12.5cm}\right\} S_1$

\vspace{1cm}

$R' = \lf(p:=x_i, R)$, így az utolsó értékadás valóban helyes.
\end{document}
