]> mj.ucw.cz Git - ads2.git/commitdiff
Prednaska o Dinicove algoritmu
authorMartin Mares <mj@ucw.cz>
Sat, 17 Oct 2009 15:44:09 +0000 (17:44 +0200)
committerMartin Mares <mj@ucw.cz>
Sat, 17 Oct 2009 15:44:09 +0000 (17:44 +0200)
2-dinic/2-dinic.stamp [new file with mode: 0644]
2-dinic/2-dinic.tex [new file with mode: 0644]
2-dinic/Makefile [new file with mode: 0644]
2-dinic/dinic-cestashranouzpet.eps [new file with mode: 0644]
2-dinic/dinic-cistasit.eps [new file with mode: 0644]
2-dinic/dinic-neprocistenasit.eps [new file with mode: 0644]

diff --git a/2-dinic/2-dinic.stamp b/2-dinic/2-dinic.stamp
new file mode 100644 (file)
index 0000000..e9c6ece
--- /dev/null
@@ -0,0 +1 @@
+2009-10-17
diff --git a/2-dinic/2-dinic.tex b/2-dinic/2-dinic.tex
new file mode 100644 (file)
index 0000000..d9bfcec
--- /dev/null
@@ -0,0 +1,216 @@
+\input lecnotes.tex
+
+\prednaska{2}{Dinicùv algoritmus}{(zapsala Markéta Popelová)}
+
+
+Na~minulé pøedná¹ce jsme si~ukázali Fordùv-Fulkersonùv algoritmus. Tento algoritmus hledal maximální tok tak, ¾e zaèal s~tokem nulovým a~postupnì ho zvìt¹oval. Pro~ka¾dé zvìt¹ení potøeboval v~síti najít cestu, na~které mají v¹echny hrany kladnou rezervu (po takovéto cestì mù¾eme poslat více, ne¾ po~ní aktuálnì teèe). Ukázali jsme, ¾e pokud takováto cesta existuje, jde tok vylep¹it (zvìt¹it). Zároveò pokud tok jde vylep¹it, pak takováto cesta existuje. Dokázali jsme, ¾e pro~racionální kapacity je algoritmus koneèný a~najde maximální tok.
+
+Forudùv-Fulkersonùv algoritmus má ov¹em znaèné nevýhody. Funguje pouze pro~racionální kapacity a~je pomìrnì pomalý. Nyní si~uká¾eme jiný algoritmus, který nevylep¹uje tok pomocí cest, ale pomocí tokù\dots Budeme k~tomi potøebovat sí» rezerv.
+
+\s{Definice:} Sí» rezerv k~toku~$f$ v~síti $S=(V,E,z,s,c)$ je sí» $R=(S,f)=(V,E,z,s,r)$, kde~$r(e)$ je rezerva hrany~$e$ v~toku~$f$.
+
+\s{Konvence:} Pro~hranu~$e$ znaèí~$\overleftarrow{e}$ hranu opaènou. Napø. pokud $e=uv$, tak $\overleftarrow{e}=vu$.
+
+Je dùle¾ité si~uvìdomit, ¾e sí» rezerv je závislá jak na~pùvodní síti~$S$, tak na~nìjakém toku~$f$ v~síti~$S$. Sí» rezerv~$R$ se~pak od sítì~$S$ li¹í pouze kapacitami -- sí»~$R$ má jako kapacitu hrany rezervu hrany. Pro~pøipomenutí: rezervu hrany~$e$ v~síti $S=(V,E,z,s,c)$ s~tokem~$f$ jsme si~definovali jako $r(e)=c(e) - f(e) + f(\overleftarrow{e})$.
+
+Ne¾ si~uká¾eme samotný algoritmus, doká¾eme si~následující lemma. 
+
+\s{Lemma:} Pro~ka¾dý tok~$f$ v~síti~$S$ a~pro~ka¾dý tok~$g$ v~síti $R=(S,f)$ lze v~èase $\O(m)$ nalézt tok~$f'$ v~síti~$S$ takový, ¾e $\vert f' \vert = \vert f \vert + \vert g \vert$.
+
+\proof
+
+Dùkaz rozdìlíme do~tøí krokù. V~prvním kroku si~uká¾eme, jak budeme tok~$f'$ v~síti~$S$ konstruovat. V~druhém kroku doká¾eme, ¾e takto zkonstruované~$f'$ je opravdu tok. A~nakonec uká¾eme, ¾e splòuje po¾adovanou vlastnost, tedy ¾e jeho velikost je souèet velikostí tokù~$f$ a~$g$.
+
+\>{\it 1. konstrukce~$f'$}
+
+Pro ka¾dou dvojici hran~$e, \overleftarrow{e}$ urèíme~$f'(e)$ a~$f'(\overleftarrow{e})$.
+
+\itemize\ibull
+\:Pokud~$g(e) = g(\overleftarrow{e}) = 0$, pak nastavme 
+       \itemize\ibull
+       \:$f'(e) := f(e)$
+       \:$f'(\overleftarrow{e}) := f(\overleftarrow{e})$.
+       \endlist
+       
+\:Pokud~$g(e) > 0$ a~$g(\overleftarrow{e}) = 0$, pak polo¾me 
+       \itemize\ibull
+       \:$\varepsilon := \min (g(e), f(\overleftarrow{e}))$
+       \:$f'(e) := f(e) + g(e) - \varepsilon$
+       \:$f'(\overleftarrow{e}) := f(\overleftarrow{e}) - \varepsilon$.
+       \endlist
+       
+\:Pokud~$g(e) > 0$ a~$g(\overleftarrow{e}) > 0$, pak polo¾me 
+       \itemize\ibull
+       \:$\delta := \min (g(e),g(\overleftarrow{e}))$
+       \:$g'(e) := g(e) - \delta$
+       \:$g'(\overleftarrow{e}) := g(\overleftarrow{e}) - \delta$.     
+       \endlist
+       
+       A tímto jsme to pøevedli na~pøedchozí pøípad, který u¾ umíme vyøe¹it.
+       
+\endlist
+
+\>{\it 2. $f'$ je tok}
+
+\numlist{\ndotted}
+
+\:Nejdøíve ovìøme první podmínku: $\forall e \in E: 0 \leq f(e) \leq c(e)$. Vezmìme lib. hranu~$e \in E$. Podle toho, co teèe po~hranách~$e$ a~$\overleftarrow{e}$ v~toku~$g$ jsme rozdìlili konstrukci toku na~tøi pøípady:
+
+       \numlist{\ndotted}      
+       
+       \:Pokud po~hranách~$e$ a~$\overleftarrow{e}$ netekl ¾ádný tok~$g$, pak jsme nastavili $f'(e) := f(e)$ a~$f'(\overleftarrow{e}) := f(\overleftarrow{e})$. Tedy pokud~$f$ dodr¾oval kapacity, tak pro~$f'$ musí platit to samé. 
+
+
+       \:Pokud po~hranì~$e$ tekl tok~$g$ nenulový a~po opaèné nulový, tak jsme zvolili: $f'(e) := f(e) + g(e) - \varepsilon$. Víme, ¾e jsme si~$\varepsilon$ vybrali tak, ¾e $\varepsilon \leq g(e)$. Proto $f'(e) \geq 0$. 
+
+       Teï ovìøme, ¾e $f'(e) \leq c(e)$. V~pøípadì, ¾e $\varepsilon = g(e)$, tak $f'(e) = f(e) \leq c(e)$. V~opaèném pøípadì platí, ¾e $\varepsilon = f(\overleftarrow{e})$. Pak ov¹em $$f'(e) = f(e) + g(e) - f(\overleftarrow{e}) \leq f(e) + \left[ c(e) - f(e) + f(\overleftarrow{e}) \right] - f(\overleftarrow{e}) = c(e).$$ Vyu¾ili jsme, ¾e~$g$ je tok v~síti rezerv, tedy $g(e) \leq  c(e) - f(e) + f(\overleftarrow{e})$.
+
+       Pro tok $f'(\overleftarrow{e})$ platí, ¾e $\varepsilon \leq f(\overleftarrow{e})$. Proto $f'(\overleftarrow{e}) = f(\overleftarrow{e}) - \varepsilon \geq 0$. Zároveò $f'(\overleftarrow{e}) \leq f'(\overleftarrow{e}) \leq c(\overleftarrow{e})$.
+
+       Tím jsme dokázali, ¾e~$f'(e)$ i~$f'(\overleftarrow{e})$ dodr¾ují kapacity.
+
+       \:V posledním pøípadì tekl po~obou hranách kladný tok~$g$. Men¹í tok z~$g(e)$ a~$g(\overleftarrow{e})$ jsme vynulovali a~od vìt¹ího odeèetli ten men¹í. Tok~$g'(e)$ a~$g'(\overleftarrow{e})$ tedy zùstal korektní a~tok~$f'$ u¾ konstruujeme podle pøedchozího pøípadu.
+
+       \endlist
+
+\:Teï musíme je¹tì dokázat, ¾e nový tok neporu¹uje Kirchhoffovy zákony: $$\forall v~\in V \setminus \{z,s\}: f'^\Delta(v)=0.$$
+       % neboli $$\forall v~\in V \setminus \{z,s\}: \sum_{u: uv \in E}{f'(uv)}=\sum_{u: vu \in E}{f'(vu)}.$$
+
+       Vezmìme si~libovolnou hranu~$e \in E$, ¾e $e=uv$. Uvìdomme si, ¾e pøi~pøechodu z~$f(e)$ na~$f(\overleftarrow{e})$ a~z~$f'(e)$ na~$f'(\overleftarrow{e})$ bylo:
+       \itemize\idot
+       \:$f^\Delta(u)$ sní¾eno o~$g(e)$
+       \:$f^\Delta(v)$ zvý¹eno o~$g(e)$.
+       \endlist
+       Pak platí $$f'^\Delta(v) = f^\Delta(v) + \sum_{u:uv \in E} g(uv) - \sum_{u:vu \in E} g(vu) =$$ $$= f^\Delta(v) + g^+(v) - g^-(v) = f^\Delta(v) + g^\Delta(v).$$
+
+       Jeliko¾~$f$ byl tok, tak $f^\Delta(v) = 0$ a~$g$ byl tok, tak¾e $g^\Delta(v) = 0$. Proto $f'^\Delta(v) = f^\Delta(v) + g^\Delta(v) = 0$.
+       
+\endlist
+
+Tím jsme dokázali, ¾e~$f'$ je tok v~síti~$S$.
+
+\>{\it 3. $\vert f' \vert = \vert f \vert + \vert g \vert$}
+
+$\vert f' \vert = f'^\Delta(s) = f^\Delta(s) + g^\Delta(s) = \vert f \vert + \vert g \vert$.
+\qed
+
+
+Pro algoritmus budeme potøebovat vybírat kvalitní toky~$g$ v~síti rezerv. Pokud se~nám to bude daøit, bude se~tok~$f'$ rychle zvìt¹ovat, a¾ bychom mohli dojít k~maximálnímu toku. Nejlépe by se~nám hodily co nejvìt¹í toky v~síti rezerv. Kdybychom si~dali za cíl najít v¾dy maximální tok v~síti rezerv, výsledek by byl sice krásný (dostali bychom tak rovnou i~maximální tok v~pùvodní síti), ale problém hledání maximálního toku bychom pouze pøenesli na~jinou sí». Na¹e po¾adavky na~tento tok budou tedy takové, aby byl dostateènì velký, ale abychom bìhem jeho hledání nestrávili moc èasu. Podívejme se, jak se~s~tímto problémem vyrovná {\I Dinicùv algoritmus}. Nejdøíve si~ale zadefinujme nìkolik pojmù.
+
+\s{Definice:} Tok~$f$ je {\I blokující}, jestli¾e pro~ka¾dou orientovanou cestu~$P$ ze~$z$ do~$s$ existuje hrana~$e \in P$ taková, ¾e $f(e) = c(e)$.
+
+\s{Definice:} Sí» je {\I vrstevnatá (proèi¹tìná)}, kdy¾ v¹echny vrcholy a~hrany le¾í na~nejkrat¹ích cestách ze~$z$ do~$s$.
+
+Dinicùv algoritmus zaèíná s~nulovým tokem. Potom v¾dy podle toku~$f$ sestrojí sí» rezerv a~v~ní vyma¾e hrany s~nulovou rezervou. Pokud v~této promazané síti rezerv neexistuje cesta ze~zdroje do~stoku, tak skonèí a~prohlásí tok~$f$ za maximální. Jinak proèistí sí» rezerv tak, aby se~z ní stala vrstevnatá sí» (rozdìlí vrcholy do~vrstev podle vzdálenosti od zdroje a~odstraní pøebyteèné hrany). Ve~vrstevnaté síti najde blokující tok, pomocí nìho¾ zlep¹í tok~$f$. Pak opìt pokraèuje sestrojením sítì rezerv na~tomto vylep¹eném toku~$f$ atd.
+
+\figure{dinic-cistasit.eps}{Proèi¹tìná sí» rozdìlená do~vrstev}{0.4\hsize}
+
+\s{Algoritmus (Dinicùv)}
+
+\algo
+\:$f \leftarrow$ nulový tok.
+\:Sestrojíme sí» rezerv~$R$ a~sma¾eme $e: r(e) = 0$.
+\:$l \leftarrow$ délka nejkrat¹í cesty ze~$z$ do~$s$ v~$R$.
+\:Pokud $l = \infty$, zastavíme se~a vrátíme~$f$.
+\:Proèistíme sí» $R \rightarrow$ sí»~$C$.
+\:$g \leftarrow$ blokující tok v~$C$.
+\:Zlep¹íme tok~$f$ pomocí~$g$.
+\:GOTO 2. 
+\endalgo
+
+\s{Pozorování:} Pokud se~algoritmus zastaví, vydá maximální tok.
+
+\proof
+Víme, ¾e~$f$ je stále korektní tok (jediné, jak ho mìníme je pøièítání toku~$g$, co¾ je, jak jsme si~dokázali, \uv{ne¹kodná operace}). Jakmile neexistuje cesta ze~$z$ do~$s$ v~$R$, tak je $f$ maximální tok, nebo» v~tuto dobu by se~zastavil (a vydal maximální tok) i~Fordùv-Fulkersonùv algoritmus, který je korektní.
+\qed
+
+A teï je¹tì musíme ujasnit, jak budeme èistit sí» rezerv a~vybírat blokující tok~$g$.
+
+\s{Algoritmus proèi¹tìní sítì rezerv}
+
+\algo
+\:Rozdìlíme vrcholy do~vrstev podle vzdálenosti od~$z$.
+\:Odstraníme vrstvy za~$s$, hrany do~minulých vrstev a~hrany uvnitø vrstev.
+\:Odstraníme \uv{slepé ulièky}, tedy vrcholy s~$\deg^{out}(v) = 0$, a~to opakovanì pomocí fronty. (Nejdøíve zaøadíme do~fronty v¹echny vrcholy s~ $\deg^{out}(v) = 0$. Pak dokud není fronta prázdná, v¾dy vybereme vrchol~$v$ z~fronty, odstraníme~$v$ a~v¹echny hrany~$uv$. Pro~ka¾dý takový vrchol~$u$ zkontrolujeme, zda se~tím nesní¾il výstupní stupeò vrcholu~$u$ na~nulu ( $\deg^{out}(u) = 0$). Pokud sní¾il, tak ho zaøadíme do~fronty.)
+\endalgo
+
+\figure{dinic-neprocistenasit.eps}{Neproèi¹tìná sí». Obsahuje zpìtné hrany, hrany uvnitø vrstvy a~slepé ulièky.}{0.45\hsize}
+
+Hledání blokujícího toku zaèneme s~tokem nulovým. Pak vezmeme v¾dy orientovanou cestu ze~zdroje do~stoku v~síti~$C$. V~této cestì najdeme hranu s~nejni¾¹í hodnotou výrazu $r(e) - g(e)$ (neboli $c(e) - f(e)$ v~pùvodní síti). Tuto hodnotu oznaèíme~$\varepsilon$. Pak ke~ v¹em hranám pøièteme~$\varepsilon$. Pokud tok~$g$ na~nìjaké hranì dosáhne kapacity hrany, co¾ je zde~$r(e)$, tak hranu vyma¾eme. Následnì sí» doèistíme, aby splòovala podmínky vrstevnaté sítì. A~pokud je¹tì existuje nìjaká orientovaná cesta ze~zdroje do~stoku, tak opìt pokraèujeme s~touto cestou.
+
+\s{Algoritmus hledání blokujícího toku}
+
+\algo
+\:$g \leftarrow$ nulový tok.
+\:Dokud existuje orientovaná cesta~$P$ ze~$z$ do~$s$ v~$C$, opakuj:
+\::$\varepsilon \leftarrow \min_{e \in P} (r(e) - g(e))$.
+\::Pro~$\forall e \in P: g(e) \leftarrow g(e) + \varepsilon$.
+\:::Pokud $g(e) = r(e)$, sma¾eme~$e$ z~$C$.
+\::Doèistíme sí» zase pomocí fronty.
+\endalgo
+
+\s{Èasová slo¾itost} Rozeberme si~jednotlivé kroky algoritmu.
+
+\numlist{\ndotted}
+\:Inicializace toku~$f$ \dots $\O(1)$.
+\:Sestrojení sítì rezerv a~smazání hran s~nulovou rezervou \dots $\O(m + n)$.
+\:Najití nejkrat¹í cesty (prohledáváním do~¹íøky) \dots $\O(m + n)$.
+\:Zkontrolování délky nejkrat¹í cesty \dots $\O(1)$.
+\:Proèi¹tìní sítì \dots $\O(m + n)$.
+       \numlist{\ndotted}
+       \:Rozdìlení vrcholù do~vrstev -- provedlo ji¾ prohledávání do~¹íøky \dots $\O(1)$.
+       \:Odstranìní nìkterých hran \dots $\O(m + n)$.
+       \:Odstranìní \uv{slepých ulièek} pomocí fronty -- ka¾dou hranu odstraníme nejvý¹e jedenkrát, ka¾dý vrchol se~dostane do~fronty nejvý¹e jedenkrát \dots $\O(m + n)$.
+       \endlist
+\:Najití blokujícího toku~$g$ \dots $\O(m \cdot n)$.
+       \numlist{\ndotted}
+       \:Inicializace toku~$g$ \dots $\O(1)$.
+       \:Najití orientované cesty v~proèi¹tìné síti rezerv (staèí vzít libovolnou cestu ze~zdroje, nebo» ka¾dá z~nich v~této síti vede do~stoku) \dots $\O(n)$.
+       \:Výbìr minima z~výrazu $r(e) - g(e)$ pøes v¹echny hrany cesty -- ta mù¾e být dlouhá nejvý¹e~$n$ \dots $\O(n)$.
+       \:Pøepoèítání v¹ech hran cesty \dots $\O(n)$.
+       \:Smazání hran cesty, jejich¾ tok~$g(e)$ se~zvý¹il na~hodnotu~$r(e)$ \dots $\O(n)$.
+       \:Doèi¹»ování vyøe¹me zvlá¹».
+       \endlist
+       
+       Vnitøní cyklus (kroky 2 a¾ 6) provedeme nejvý¹e~$m$ krát, nebo» pøi~ka¾dém prùchodu vyma¾eme alespoò jednu hranu (tak jsme si~volili~$\varepsilon$).
+       
+       Èi¹tìní bìhem celého hledání blokujícího toku~$g$ v~proèi¹tìné síti rezerv trvá dohromady $\O(m + n)$, nebo» ka¾dou hranu a~vrchol sma¾eme nejvý¹e jedenkrát.
+       
+       Najití blokujícího toku bude tedy trvat $\O(m \cdot n + (m + n)) = \O(m \cdot n)$.
+       
+\:Zlep¹ení toku~$f$ pomocí toku~$g$ \dots $\O(m)$.
+\:Skok na~2. krok \dots $\O(1)$.
+\endlist
+
+Zbývá nám jen urèit, kolikrát projdeme vnìj¹ím cyklem (fází). Doká¾eme si~lemma, ¾e hodnota~$l$ vzroste mezi prùchody vnìj¹ím cyklem (fázemi) alespoò o~1. Z~toho plyne, ¾e vnjì¹ím cyklem mù¾eme projít nejvý¹e $n$-krát, nebo» cesta v síti na~$n$ vrcholech mù¾e být dlouhá nejvý¹e $n$.
+
+Uvìdomme si, ¾e uvnitø vnìj¹ího cyklu pøevládá èlen $\O(m \cdot n)$, tak¾e celková èasová slo¾itost bude $\O(n^2 \cdot m)$.
+
+\s{Lemma:} Hodnota~$l$ vzroste mezi fázemi alespoò o~1.
+
+\proof
+
+Podíváme se~na~prùbìh jednoho prùchodu vnìj¹ím cyklem. Délku aktuálnì nejkrat¹í cesty ze~zdroje do~stoku oznaème~$l$. V¹echny pùvodní cesty délky~$l$ se~bìhem prùchodu zaruèenì nasytí, proto¾e tok~$g$ je blokující. Musíme v¹ak dokázat, ¾e nemohou vzniknout ¾ádné nové cesty délky~$l$ nebo men¹í. V~síti rezerv toti¾ mohou hrany nejen
+ubývat, ale i~pøibývat: pokud po¹leme tok po~hranì, po~které je¹tì nic neteklo, tak v~protismìru z~dosud nulové rezervy vyrobíme nenulovou. Rozmysleme si~tedy, jaké hrany mohou pøibývat.
+
+Hrany mohou pøibývat jen tehdy, kdy¾ jsme po~opaèné hranì nìco poslali. Ale my nìco posíláme po~hranách pouze z~vrstvy do~té následující. Hrany tedy pøibývají do~minulé vrstvy.
+
+Vznikem nových hran by proto mohly vzniknout nové cesty ze~zdroje do~stoku, které pou¾ívají zpìtné hrany. Jen¾e cesta ze~zdroje do~stoku, která pou¾ije zpìtnou hranu, musí alespoò jednou skoèit o~vrstvu zpìt a~nikdy nemù¾e skoèit o~více ne¾ jednu vrstvu dopøedu, a~proto je její délka alespoò $l+2$. Pokud cesta novou zpìtnou hranu nepou¾ije má buï délku~$> l$, co¾ je v~poøádku, nebo má délku~$= l$, pak je zablokovaná.
+
+Tím je lemma dokázáno.
+\qed
+
+\figure{dinic-cestashranouzpet.eps}{Cesta u¾ívající novou zpìtnou hranu}{0.4\hsize}
+
+V¹echna dokázaná tvrzení mù¾eme shrnout do~následující vìty:
+
+\s{Vìta:} Dinicùv algoritmus najde maximální tok v~èase $\O(n^2\cdot m)$.
+
+\s{Poznámka:} Algoritmus se~chová hezky na~sítích s~malými racionálními èísly, ale kupodivu i~na~rùzných jiných sítích. Èasto se~pou¾ívá, nebo» se~chová efektivnì. A~je mnoho zpùsobù, jak ho je¹tì vylep¹ovat, èi odhadovat ni¾¹í slo¾itost na~speciálních sítích.
+
+\s{Poznámka:} Algoritmus nevy¾aduje racionální kapacity! Dal¹í z~dùvodù, proè maximální tok existuje i~v~síti s~iracionálními kapacitami.
+
+
+%k,s,v,na,do,ke,pro,pøi,a,u,i,po,
+
+\bye
diff --git a/2-dinic/Makefile b/2-dinic/Makefile
new file mode 100644 (file)
index 0000000..c183fb0
--- /dev/null
@@ -0,0 +1,3 @@
+P=2-dinic
+
+include ../Makerules
diff --git a/2-dinic/dinic-cestashranouzpet.eps b/2-dinic/dinic-cestashranouzpet.eps
new file mode 100644 (file)
index 0000000..0869139
--- /dev/null
@@ -0,0 +1,297 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: Diagram1.dia
+%%Creator: Dia v0.94
+%%CreationDate: Sun Mar 26 18:45:50 2006
+%%For: bernard
+%%Orientation: Portrait
+%%Magnification: 1.0000
+%%BoundingBox: 0 0 539 219
+%%BeginSetup
+%%EndSetup
+%%EndComments
+%%BeginProlog
+[ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright
+/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one
+/two /three /four /five /six /seven /eight /nine /colon /semicolon
+/less /equal /greater /question /at /A /B /C /D /E
+/F /G /H /I /J /K /L /M /N /O
+/P /Q /R /S /T /U /V /W /X /Y
+/Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c
+/d /e /f /g /h /i /j /k /l /m
+/n /o /p /q /r /s /t /u /v /w
+/x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright
+/ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior
+/acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf
+/threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
+/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde
+/Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex
+/Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring
+/ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
+/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave
+/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] /isolatin1encoding exch def
+/cp {closepath} bind def
+/c {curveto} bind def
+/f {fill} bind def
+/a {arc} bind def
+/ef {eofill} bind def
+/ex {exch} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth pop} bind def
+/tr {translate} bind def
+
+/ellipsedict 8 dict def
+ellipsedict /mtrx matrix put
+/ellipse
+{ ellipsedict begin
+   /endangle exch def
+   /startangle exch def
+   /yrad exch def
+   /xrad exch def
+   /y exch def
+   /x exch def   /savematrix mtrx currentmatrix def
+   x y tr xrad yrad sc
+   0 0 1 startangle endangle arc
+   savematrix setmatrix
+   end
+} def
+
+/mergeprocs {
+dup length
+3 -1 roll
+dup
+length
+dup
+5 1 roll
+3 -1 roll
+add
+array cvx
+dup
+3 -1 roll
+0 exch
+putinterval
+dup
+4 2 roll
+putinterval
+} bind def
+/dpi_x 300 def
+/dpi_y 300 def
+/conicto {
+    /to_y exch def
+    /to_x exch def
+    /conic_cntrl_y exch def
+    /conic_cntrl_x exch def
+    currentpoint
+    /p0_y exch def
+    /p0_x exch def
+    /p1_x p0_x conic_cntrl_x p0_x sub 2 3 div mul add def
+    /p1_y p0_y conic_cntrl_y p0_y sub 2 3 div mul add def
+    /p2_x p1_x to_x p0_x sub 1 3 div mul add def
+    /p2_y p1_y to_y p0_y sub 1 3 div mul add def
+    p1_x p1_y p2_x p2_y to_x to_y curveto
+} bind def
+/start_ol { gsave 1.1 dpi_x div dup scale} bind def
+/end_ol { closepath fill grestore } bind def
+28.346000 -28.346000 scale
+-5.000000 -8.493600 translate
+%%EndProlog
+
+
+1.000000 1.000000 1.000000 srgb
+n 9.362500 4.500000 0.950000 3.650000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 9.362500 4.500000 0.950000 3.650000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 12.962500 4.564000 0.950000 3.650000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 12.962500 4.564000 0.950000 3.650000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 16.481600 4.793600 0.950000 3.650000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 16.481600 4.793600 0.950000 3.650000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 20.080500 4.632000 0.950000 3.650000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 20.080500 4.632000 0.950000 3.650000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 5.587500 4.400000 0.462500 0.450000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 5.587500 4.400000 0.462500 0.450000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 23.497500 4.760000 0.450000 0.450000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 23.497500 4.760000 0.450000 0.450000 0 360 ellipse cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 6.050000 4.400000 m 8.875918 4.485311 l s
+[] 0 sd
+0 slj
+0 slc
+n 9.250748 4.496626 m 8.743431 4.731425 l 8.875918 4.485311 l 8.758519 4.231653 l ef
+n 9.250748 4.496626 m 8.743431 4.731425 l 8.875918 4.485311 l 8.758519 4.231653 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 9.697600 4.601600 m 12.796832 6.404790 l s
+[] 0 sd
+0 slj
+0 slc
+n 13.120963 6.593375 m 12.563065 6.558015 l 12.796832 6.404790 l 12.814512 6.125841 l ef
+n 13.120963 6.593375 m 12.563065 6.558015 l 12.796832 6.404790 l 12.814512 6.125841 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 16.481600 2.297600 m 19.672090 4.367088 l s
+[] 0 sd
+0 slj
+0 slc
+n 19.986701 4.571158 m 19.431172 4.508805 l 19.672090 4.367088 l 19.703266 4.089323 l ef
+n 19.986701 4.571158 m 19.431172 4.508805 l 19.672090 4.367088 l 19.703266 4.089323 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 20.513600 4.729600 m 22.560732 4.754160 l s
+[] 0 sd
+0 slj
+0 slc
+n 22.935705 4.758659 m 22.432742 5.002643 l 22.560732 4.754160 l 22.438740 4.502679 l ef
+n 22.935705 4.758659 m 22.432742 5.002643 l 22.560732 4.754160 l 22.438740 4.502679 l cp s
+gsave 5.000000 6.562500 translate 0.035278 -0.035278 scale
+start_ol
+5729 6016 moveto
+5533 5056 lineto
+5124 5280 4670 5392 conicto
+4216 5504 3734 5504 conicto
+2921 5504 2452 5229 conicto
+1984 4954 1984 4482 conicto
+1984 3933 3088 3639 conicto
+3172 3617 3213 3606 conicto
+3548 3506 lineto
+4567 3221 4907 2908 conicto
+5248 2595 5248 2053 conicto
+5248 1059 4456 433 conicto
+3665 -192 2384 -192 conicto
+1886 -192 1338 -98 conicto
+790 -5 130 192 conicto
+331 1280 lineto
+896 997 1444 850 conicto
+1992 704 2496 704 conicto
+3263 704 3743 1023 conicto
+4224 1343 4224 1833 conicto
+4224 2361 2963 2686 conicto
+2854 2714 lineto
+2496 2802 lineto
+1700 3010 1330 3349 conicto
+960 3689 960 4217 conicto
+960 5221 1716 5810 conicto
+2472 6400 3771 6400 conicto
+4283 6400 4769 6304 conicto
+5256 6208 5729 6016 conicto
+end_ol grestore 
+gsave 23.440000 6.827500 translate 0.035278 -0.035278 scale
+start_ol
+4867 6272 moveto
+4711 5440 lineto
+2658 5440 lineto
+1992 2036 lineto
+1958 1846 1941 1717 conicto
+1925 1589 1925 1516 conicto
+1925 1157 2140 994 conicto
+2356 832 2831 832 conicto
+3872 832 lineto
+3698 0 lineto
+2714 0 lineto
+1796 0 1346 353 conicto
+896 706 896 1423 conicto
+896 1551 912 1702 conicto
+929 1854 963 2036 conicto
+1628 5440 lineto
+752 5440 lineto
+918 6272 lineto
+1774 6272 lineto
+2121 8064 lineto
+3150 8064 lineto
+2809 6272 lineto
+4867 6272 lineto
+end_ol grestore 
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.975875 0.112764 0.032090 srgb
+n 16.163919 1.258881 3.439993 3.439993 87.657866 147.036577 ellipse s
+[] 0 sd
+0 slj
+0 slc
+n 13.132801 2.784720 m 13.556586 3.149283 l 13.277703 3.130593 l 13.095421 3.342485 l ef
+n 13.132801 2.784720 m 13.556586 3.149283 l 13.277703 3.130593 l 13.095421 3.342485 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 13.388362 6.692362 m 15.935649 5.171189 l s
+[] 0 sd
+0 slj
+0 slc
+n 16.257610 4.978923 m 15.956507 5.449918 l 15.935649 5.171189 l 15.700151 5.020638 l ef
+n 16.257610 4.978923 m 15.956507 5.449918 l 15.935649 5.171189 l 15.700151 5.020638 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 13.025600 2.425600 m 15.802797 2.425600 l s
+[] 0 sd
+0 slj
+0 slc
+n 16.177797 2.425600 m 15.677797 2.675600 l 15.802797 2.425600 l 15.677797 2.175600 l ef
+n 16.177797 2.425600 m 15.677797 2.675600 l 15.802797 2.425600 l 15.677797 2.175600 l cp s
+showpage
diff --git a/2-dinic/dinic-cistasit.eps b/2-dinic/dinic-cistasit.eps
new file mode 100644 (file)
index 0000000..1f89736
--- /dev/null
@@ -0,0 +1,385 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: Diagram1.dia
+%%Creator: Dia v0.94
+%%CreationDate: Sun Mar 26 18:42:37 2006
+%%For: bernard
+%%Orientation: Portrait
+%%Magnification: 1.0000
+%%BoundingBox: 0 0 539 213
+%%BeginSetup
+%%EndSetup
+%%EndComments
+%%BeginProlog
+[ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright
+/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one
+/two /three /four /five /six /seven /eight /nine /colon /semicolon
+/less /equal /greater /question /at /A /B /C /D /E
+/F /G /H /I /J /K /L /M /N /O
+/P /Q /R /S /T /U /V /W /X /Y
+/Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c
+/d /e /f /g /h /i /j /k /l /m
+/n /o /p /q /r /s /t /u /v /w
+/x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright
+/ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior
+/acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf
+/threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
+/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde
+/Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex
+/Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring
+/ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
+/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave
+/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] /isolatin1encoding exch def
+/cp {closepath} bind def
+/c {curveto} bind def
+/f {fill} bind def
+/a {arc} bind def
+/ef {eofill} bind def
+/ex {exch} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth pop} bind def
+/tr {translate} bind def
+
+/ellipsedict 8 dict def
+ellipsedict /mtrx matrix put
+/ellipse
+{ ellipsedict begin
+   /endangle exch def
+   /startangle exch def
+   /yrad exch def
+   /xrad exch def
+   /y exch def
+   /x exch def   /savematrix mtrx currentmatrix def
+   x y tr xrad yrad sc
+   0 0 1 startangle endangle arc
+   savematrix setmatrix
+   end
+} def
+
+/mergeprocs {
+dup length
+3 -1 roll
+dup
+length
+dup
+5 1 roll
+3 -1 roll
+add
+array cvx
+dup
+3 -1 roll
+0 exch
+putinterval
+dup
+4 2 roll
+putinterval
+} bind def
+/dpi_x 300 def
+/dpi_y 300 def
+/conicto {
+    /to_y exch def
+    /to_x exch def
+    /conic_cntrl_y exch def
+    /conic_cntrl_x exch def
+    currentpoint
+    /p0_y exch def
+    /p0_x exch def
+    /p1_x p0_x conic_cntrl_x p0_x sub 2 3 div mul add def
+    /p1_y p0_y conic_cntrl_y p0_y sub 2 3 div mul add def
+    /p2_x p1_x to_x p0_x sub 1 3 div mul add def
+    /p2_y p1_y to_y p0_y sub 1 3 div mul add def
+    p1_x p1_y p2_x p2_y to_x to_y curveto
+} bind def
+/start_ol { gsave 1.1 dpi_x div dup scale} bind def
+/end_ol { closepath fill grestore } bind def
+28.346000 -28.346000 scale
+-2.500000 -9.500000 translate
+%%EndProlog
+
+
+1.000000 1.000000 1.000000 srgb
+n 6.862500 5.700000 0.950000 3.650000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 6.862500 5.700000 0.950000 3.650000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 10.526500 5.700000 0.950000 3.650000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 10.526500 5.700000 0.950000 3.650000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 13.862500 5.800000 0.950000 3.650000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 13.862500 5.800000 0.950000 3.650000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 17.772500 5.768000 0.950000 3.650000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 17.772500 5.768000 0.950000 3.650000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 3.087500 5.600000 0.462500 0.450000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 3.087500 5.600000 0.462500 0.450000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 20.997500 5.768000 0.450000 0.450000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 20.997500 5.768000 0.450000 0.450000 0 360 ellipse cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 3.414537 5.281802 m 6.321672 3.628187 l s
+[] 0 sd
+0 slj
+0 slc
+n 6.647630 3.442778 m 6.336625 3.907295 l 6.321672 3.628187 l 6.089413 3.472685 l ef
+n 6.647630 3.442778 m 6.336625 3.907295 l 6.321672 3.628187 l 6.089413 3.472685 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 3.414537 5.918198 m 6.093929 7.401701 l s
+[] 0 sd
+0 slj
+0 slc
+n 6.422000 7.583344 m 5.863476 7.559867 l 6.093929 7.401701 l 6.105667 7.122439 l ef
+n 6.422000 7.583344 m 5.863476 7.559867 l 6.093929 7.401701 l 6.105667 7.122439 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 3.550000 5.600000 m 6.375918 5.685311 l s
+[] 0 sd
+0 slj
+0 slc
+n 6.750748 5.696626 m 6.243431 5.931425 l 6.375918 5.685311 l 6.258519 5.431653 l ef
+n 6.750748 5.696626 m 6.243431 5.931425 l 6.375918 5.685311 l 6.258519 5.431653 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 7.534251 3.119060 m 10.172509 7.690865 l s
+[] 0 sd
+0 slj
+0 slc
+n 10.359941 8.015664 m 9.893499 7.707553 l 10.172509 7.690865 l 10.326564 7.457644 l ef
+n 10.359941 8.015664 m 9.893499 7.707553 l 10.172509 7.690865 l 10.326564 7.457644 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 7.812500 5.700000 m 9.895478 3.630595 l s
+[] 0 sd
+0 slj
+0 slc
+n 10.161508 3.366298 m 9.982999 3.896048 l 9.895478 3.630595 l 9.630603 3.541340 l ef
+n 10.161508 3.366298 m 9.982999 3.896048 l 9.895478 3.630595 l 9.630603 3.541340 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 7.515823 8.237500 m 10.061063 5.845852 l s
+[] 0 sd
+0 slj
+0 slc
+n 10.334346 5.589060 m 10.141163 6.113637 l 10.061063 5.845852 l 9.798775 5.749260 l ef
+n 10.334346 5.589060 m 10.141163 6.113637 l 10.061063 5.845852 l 9.798775 5.749260 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 11.198251 3.119060 m 13.566239 5.562896 l s
+[] 0 sd
+0 slj
+0 slc
+n 13.827192 5.832207 m 13.299714 5.647094 l 13.566239 5.562896 l 13.658796 5.299157 l ef
+n 13.827192 5.832207 m 13.299714 5.647094 l 13.566239 5.562896 l 13.658796 5.299157 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 11.198251 8.280940 m 13.310798 8.286271 l s
+[] 0 sd
+0 slj
+0 slc
+n 13.685797 8.287218 m 13.185168 8.535955 l 13.310798 8.286271 l 13.186429 8.035957 l ef
+n 13.685797 8.287218 m 13.185168 8.535955 l 13.310798 8.286271 l 13.186429 8.035957 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 11.476500 5.700000 m 13.484600 3.705546 l s
+[] 0 sd
+0 slj
+0 slc
+n 13.750667 3.441287 m 13.572084 3.971011 l 13.484600 3.705546 l 13.219738 3.616255 l ef
+n 13.750667 3.441287 m 13.572084 3.971011 l 13.484600 3.705546 l 13.219738 3.616255 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 14.534251 3.219060 m 17.185798 3.213518 l s
+[] 0 sd
+0 slj
+0 slc
+n 17.560797 3.212734 m 17.061321 3.463778 l 17.185798 3.213518 l 17.060275 2.963779 l ef
+n 17.560797 3.212734 m 17.061321 3.463778 l 17.185798 3.213518 l 17.060275 2.963779 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 14.812500 5.800000 m 17.010844 5.830702 l s
+[] 0 sd
+0 slj
+0 slc
+n 17.385808 5.835939 m 16.882365 6.078932 l 17.010844 5.830702 l 16.889347 5.578981 l ef
+n 17.385808 5.835939 m 16.882365 6.078932 l 17.010844 5.830702 l 16.889347 5.578981 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 14.534251 8.380940 m 17.385804 8.365189 l s
+[] 0 sd
+0 slj
+0 slc
+n 17.760798 8.363118 m 17.262187 8.615876 l 17.385804 8.365189 l 17.259425 8.115883 l ef
+n 17.760798 8.363118 m 17.262187 8.615876 l 17.385804 8.365189 l 17.259425 8.115883 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 18.444251 3.187060 m 20.337206 5.103467 l s
+[] 0 sd
+0 slj
+0 slc
+n 20.600733 5.370260 m 20.071502 5.190221 l 20.337206 5.103467 l 20.427225 4.838851 l ef
+n 20.600733 5.370260 m 20.071502 5.190221 l 20.337206 5.103467 l 20.427225 4.838851 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 18.722500 5.768000 m 20.060697 5.768000 l s
+[] 0 sd
+0 slj
+0 slc
+n 20.435697 5.768000 m 19.935697 6.018000 l 20.060697 5.768000 l 19.935697 5.518000 l ef
+n 20.435697 5.768000 m 19.935697 6.018000 l 20.060697 5.768000 l 19.935697 5.518000 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 18.444251 8.348940 m 20.337206 6.432533 l s
+[] 0 sd
+0 slj
+0 slc
+n 20.600733 6.165740 m 20.427225 6.697149 l 20.337206 6.432533 l 20.071502 6.345779 l ef
+n 20.600733 6.165740 m 20.427225 6.697149 l 20.337206 6.432533 l 20.071502 6.345779 l cp s
+gsave 2.500000 7.762500 translate 0.035278 -0.035278 scale
+start_ol
+5729 6016 moveto
+5533 5056 lineto
+5124 5280 4670 5392 conicto
+4216 5504 3734 5504 conicto
+2921 5504 2452 5229 conicto
+1984 4954 1984 4482 conicto
+1984 3933 3088 3639 conicto
+3172 3617 3213 3606 conicto
+3548 3506 lineto
+4567 3221 4907 2908 conicto
+5248 2595 5248 2053 conicto
+5248 1059 4456 433 conicto
+3665 -192 2384 -192 conicto
+1886 -192 1338 -98 conicto
+790 -5 130 192 conicto
+331 1280 lineto
+896 997 1444 850 conicto
+1992 704 2496 704 conicto
+3263 704 3743 1023 conicto
+4224 1343 4224 1833 conicto
+4224 2361 2963 2686 conicto
+2854 2714 lineto
+2496 2802 lineto
+1700 3010 1330 3349 conicto
+960 3689 960 4217 conicto
+960 5221 1716 5810 conicto
+2472 6400 3771 6400 conicto
+4283 6400 4769 6304 conicto
+5256 6208 5729 6016 conicto
+end_ol grestore 
+gsave 20.940000 8.027500 translate 0.035278 -0.035278 scale
+start_ol
+4867 6272 moveto
+4711 5440 lineto
+2658 5440 lineto
+1992 2036 lineto
+1958 1846 1941 1717 conicto
+1925 1589 1925 1516 conicto
+1925 1157 2140 994 conicto
+2356 832 2831 832 conicto
+3872 832 lineto
+3698 0 lineto
+2714 0 lineto
+1796 0 1346 353 conicto
+896 706 896 1423 conicto
+896 1551 912 1702 conicto
+929 1854 963 2036 conicto
+1628 5440 lineto
+752 5440 lineto
+918 6272 lineto
+1774 6272 lineto
+2121 8064 lineto
+3150 8064 lineto
+2809 6272 lineto
+4867 6272 lineto
+end_ol grestore 
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 14.534251 8.380940 m 17.084091 6.455823 l s
+[] 0 sd
+0 slj
+0 slc
+n 17.383372 6.229867 m 17.134968 6.730662 l 17.084091 6.455823 l 16.833693 6.331621 l ef
+n 17.383372 6.229867 m 17.134968 6.730662 l 17.084091 6.455823 l 16.833693 6.331621 l cp s
+showpage
diff --git a/2-dinic/dinic-neprocistenasit.eps b/2-dinic/dinic-neprocistenasit.eps
new file mode 100644 (file)
index 0000000..0ef4bca
--- /dev/null
@@ -0,0 +1,489 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: Diagram1.dia
+%%Creator: Dia v0.94
+%%CreationDate: Sun Mar 26 18:43:17 2006
+%%For: bernard
+%%Orientation: Portrait
+%%Magnification: 1.0000
+%%BoundingBox: 0 0 645 410
+%%BeginSetup
+%%EndSetup
+%%EndComments
+%%BeginProlog
+[ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright
+/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one
+/two /three /four /five /six /seven /eight /nine /colon /semicolon
+/less /equal /greater /question /at /A /B /C /D /E
+/F /G /H /I /J /K /L /M /N /O
+/P /Q /R /S /T /U /V /W /X /Y
+/Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c
+/d /e /f /g /h /i /j /k /l /m
+/n /o /p /q /r /s /t /u /v /w
+/x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright
+/ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior
+/acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf
+/threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
+/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde
+/Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex
+/Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring
+/ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
+/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave
+/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] /isolatin1encoding exch def
+/cp {closepath} bind def
+/c {curveto} bind def
+/f {fill} bind def
+/a {arc} bind def
+/ef {eofill} bind def
+/ex {exch} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth pop} bind def
+/tr {translate} bind def
+
+/ellipsedict 8 dict def
+ellipsedict /mtrx matrix put
+/ellipse
+{ ellipsedict begin
+   /endangle exch def
+   /startangle exch def
+   /yrad exch def
+   /xrad exch def
+   /y exch def
+   /x exch def   /savematrix mtrx currentmatrix def
+   x y tr xrad yrad sc
+   0 0 1 startangle endangle arc
+   savematrix setmatrix
+   end
+} def
+
+/mergeprocs {
+dup length
+3 -1 roll
+dup
+length
+dup
+5 1 roll
+3 -1 roll
+add
+array cvx
+dup
+3 -1 roll
+0 exch
+putinterval
+dup
+4 2 roll
+putinterval
+} bind def
+/dpi_x 300 def
+/dpi_y 300 def
+/conicto {
+    /to_y exch def
+    /to_x exch def
+    /conic_cntrl_y exch def
+    /conic_cntrl_x exch def
+    currentpoint
+    /p0_y exch def
+    /p0_x exch def
+    /p1_x p0_x conic_cntrl_x p0_x sub 2 3 div mul add def
+    /p1_y p0_y conic_cntrl_y p0_y sub 2 3 div mul add def
+    /p2_x p1_x to_x p0_x sub 1 3 div mul add def
+    /p2_y p1_y to_y p0_y sub 1 3 div mul add def
+    p1_x p1_y p2_x p2_y to_x to_y curveto
+} bind def
+/start_ol { gsave 1.1 dpi_x div dup scale} bind def
+/end_ol { closepath fill grestore } bind def
+28.346000 -28.346000 scale
+-2.500000 -16.434513 translate
+%%EndProlog
+
+
+1.000000 1.000000 1.000000 srgb
+n 6.862500 7.272280 0.950000 3.650000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 6.862500 7.272280 0.950000 3.650000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 10.462500 7.272280 0.950000 3.650000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 10.462500 7.272280 0.950000 3.650000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 13.862500 7.372280 0.950000 3.650000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 13.862500 7.372280 0.950000 3.650000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 17.708500 7.468280 0.950000 3.650000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 17.708500 7.468280 0.950000 3.650000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 3.087500 7.172280 0.462500 0.450000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 3.087500 7.172280 0.462500 0.450000 0 360 ellipse cp s
+1.000000 1.000000 1.000000 srgb
+n 20.997500 7.468280 0.450000 0.450000 0 360 ellipse f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0.000000 0.000000 0.000000 srgb
+n 20.997500 7.468280 0.450000 0.450000 0 360 ellipse cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 3.414537 6.854082 m 6.321672 5.200467 l s
+[] 0 sd
+0 slj
+0 slc
+n 6.647630 5.015059 m 6.336625 5.479576 l 6.321672 5.200467 l 6.089413 5.044965 l ef
+n 6.647630 5.015059 m 6.336625 5.479576 l 6.321672 5.200467 l 6.089413 5.044965 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 3.414537 7.490478 m 6.093929 8.973981 l s
+[] 0 sd
+0 slj
+0 slc
+n 6.422000 9.155625 m 5.863476 9.132147 l 6.093929 8.973981 l 6.105667 8.694719 l ef
+n 6.422000 9.155625 m 5.863476 9.132147 l 6.093929 8.973981 l 6.105667 8.694719 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 3.550000 7.172280 m 6.375918 7.257591 l s
+[] 0 sd
+0 slj
+0 slc
+n 6.750748 7.268907 m 6.243431 7.503705 l 6.375918 7.257591 l 6.258519 7.003933 l ef
+n 6.750748 7.268907 m 6.243431 7.503705 l 6.375918 7.257591 l 6.258519 7.003933 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 7.534251 4.691341 m 10.172509 9.263145 l s
+[] 0 sd
+0 slj
+0 slc
+n 10.359941 9.587944 m 9.893499 9.279834 l 10.172509 9.263145 l 10.326564 9.029924 l ef
+n 10.359941 9.587944 m 9.893499 9.279834 l 10.172509 9.263145 l 10.326564 9.029924 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 7.812500 7.272280 m 9.895478 5.202875 l s
+[] 0 sd
+0 slj
+0 slc
+n 10.161508 4.938578 m 9.982999 5.468328 l 9.895478 5.202875 l 9.630603 5.113621 l ef
+n 10.161508 4.938578 m 9.982999 5.468328 l 9.895478 5.202875 l 9.630603 5.113621 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 7.534251 9.853220 m 10.064779 7.422042 l s
+[] 0 sd
+0 slj
+0 slc
+n 10.335199 7.162239 m 10.147841 7.688924 l 10.064779 7.422042 l 9.801436 7.328363 l ef
+n 10.335199 7.162239 m 10.147841 7.688924 l 10.064779 7.422042 l 9.801436 7.328363 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 11.134251 4.691341 m 13.515281 7.031082 l s
+[] 0 sd
+0 slj
+0 slc
+n 13.782755 7.293918 m 13.250899 7.121786 l 13.515281 7.031082 l 13.601347 6.765154 l ef
+n 13.782755 7.293918 m 13.250899 7.121786 l 13.515281 7.031082 l 13.601347 6.765154 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 11.134251 9.853220 m 13.310798 9.858581 l s
+[] 0 sd
+0 slj
+0 slc
+n 13.685797 9.859505 m 13.185183 10.108273 l 13.310798 9.858581 l 13.186414 9.608274 l ef
+n 13.685797 9.859505 m 13.185183 10.108273 l 13.310798 9.858581 l 13.186414 9.608274 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 11.412500 7.272280 m 13.480030 5.273164 l s
+[] 0 sd
+0 slj
+0 slc
+n 13.749618 5.012496 m 13.563946 5.539778 l 13.480030 5.273164 l 13.216389 5.180327 l ef
+n 13.749618 5.012496 m 13.563946 5.539778 l 13.480030 5.273164 l 13.216389 5.180327 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 14.534251 4.791341 m 17.185798 4.785798 l s
+[] 0 sd
+0 slj
+0 slc
+n 17.560797 4.785014 m 17.061321 5.036059 l 17.185798 4.785798 l 17.060275 4.536060 l ef
+n 17.560797 4.785014 m 17.061321 5.036059 l 17.185798 4.785798 l 17.060275 4.536060 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 14.812500 7.372280 m 17.010844 7.402982 l s
+[] 0 sd
+0 slj
+0 slc
+n 17.385808 7.408219 m 16.882365 7.651212 l 17.010844 7.402982 l 16.889347 7.151261 l ef
+n 17.385808 7.408219 m 16.882365 7.651212 l 17.010844 7.402982 l 16.889347 7.151261 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 14.534251 9.953220 m 17.385804 9.937469 l s
+[] 0 sd
+0 slj
+0 slc
+n 17.760798 9.935398 m 17.262187 10.188156 l 17.385804 9.937469 l 17.259425 9.688163 l ef
+n 17.760798 9.935398 m 17.262187 10.188156 l 17.385804 9.937469 l 17.259425 9.688163 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 18.380251 4.887341 m 20.332351 6.808611 l s
+[] 0 sd
+0 slj
+0 slc
+n 20.599618 7.071657 m 20.067898 6.899107 l 20.332351 6.808611 l 20.418626 6.542751 l ef
+n 20.599618 7.071657 m 20.067898 6.899107 l 20.332351 6.808611 l 20.418626 6.542751 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 18.658500 7.468280 m 20.060697 7.468280 l s
+[] 0 sd
+0 slj
+0 slc
+n 20.435697 7.468280 m 19.935697 7.718280 l 20.060697 7.468280 l 19.935697 7.218280 l ef
+n 20.435697 7.468280 m 19.935697 7.718280 l 20.060697 7.468280 l 19.935697 7.218280 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 18.380251 10.049220 m 20.332351 8.127950 l s
+[] 0 sd
+0 slj
+0 slc
+n 20.599618 7.864904 m 20.418626 8.393810 l 20.332351 8.127950 l 20.067898 8.037454 l ef
+n 20.599618 7.864904 m 20.418626 8.393810 l 20.332351 8.127950 l 20.067898 8.037454 l cp s
+gsave 2.500000 9.334780 translate 0.035278 -0.035278 scale
+start_ol
+5729 6016 moveto
+5533 5056 lineto
+5124 5280 4670 5392 conicto
+4216 5504 3734 5504 conicto
+2921 5504 2452 5229 conicto
+1984 4954 1984 4482 conicto
+1984 3933 3088 3639 conicto
+3172 3617 3213 3606 conicto
+3548 3506 lineto
+4567 3221 4907 2908 conicto
+5248 2595 5248 2053 conicto
+5248 1059 4456 433 conicto
+3665 -192 2384 -192 conicto
+1886 -192 1338 -98 conicto
+790 -5 130 192 conicto
+331 1280 lineto
+896 997 1444 850 conicto
+1992 704 2496 704 conicto
+3263 704 3743 1023 conicto
+4224 1343 4224 1833 conicto
+4224 2361 2963 2686 conicto
+2854 2714 lineto
+2496 2802 lineto
+1700 3010 1330 3349 conicto
+960 3689 960 4217 conicto
+960 5221 1716 5810 conicto
+2472 6400 3771 6400 conicto
+4283 6400 4769 6304 conicto
+5256 6208 5729 6016 conicto
+end_ol grestore 
+gsave 20.940000 9.599780 translate 0.035278 -0.035278 scale
+start_ol
+4867 6272 moveto
+4711 5440 lineto
+2658 5440 lineto
+1992 2036 lineto
+1958 1846 1941 1717 conicto
+1925 1589 1925 1516 conicto
+1925 1157 2140 994 conicto
+2356 832 2831 832 conicto
+3872 832 lineto
+3698 0 lineto
+2714 0 lineto
+1796 0 1346 353 conicto
+896 706 896 1423 conicto
+896 1551 912 1702 conicto
+929 1854 963 2036 conicto
+1628 5440 lineto
+752 5440 lineto
+918 6272 lineto
+1774 6272 lineto
+2121 8064 lineto
+3150 8064 lineto
+2809 6272 lineto
+4867 6272 lineto
+end_ol grestore 
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 14.534251 9.953220 m 17.084091 8.028103 l s
+[] 0 sd
+0 slj
+0 slc
+n 17.383372 7.802147 m 17.134968 8.302942 l 17.084091 8.028103 l 16.833693 7.903901 l ef
+n 17.383372 7.802147 m 17.134968 8.302942 l 17.084091 8.028103 l 16.833693 7.903901 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+1.000000 0.000000 0.000000 srgb
+n 8.863225 5.441066 2.421913 2.421913 219.588577 311.325462 ellipse s
+[] 0 sd
+0 slj
+0 slc
+n 6.834543 4.235732 m 6.825501 3.676788 l 6.996801 3.897653 l 7.276273 3.893132 l ef
+n 6.834543 4.235732 m 6.825501 3.676788 l 6.996801 3.897653 l 7.276273 3.893132 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.975875 0.112764 0.032090 srgb
+n 14.340216 6.146671 4.094721 4.094721 208.352852 325.345101 ellipse s
+[] 0 sd
+0 slj
+0 slc
+n 10.602251 4.552157 m 10.548134 3.995765 l 10.736698 4.202087 l 11.014894 4.175028 l ef
+n 10.602251 4.552157 m 10.548134 3.995765 l 10.736698 4.202087 l 11.014894 4.175028 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 10.592609 8.092906 4.390150 4.390150 41.855976 148.145915 ellipse s
+[] 0 sd
+0 slj
+0 slc
+n 6.705357 10.069883 m 7.143037 10.417642 l 6.863637 10.409843 l 6.689758 10.628683 l ef
+n 6.705357 10.069883 m 7.143037 10.417642 l 6.863637 10.409843 l 6.689758 10.628683 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.000000 0.000000 1.000000 srgb
+n 8.903416 7.318665 5.568561 5.568561 344.301874 23.291516 ellipse s
+[] 0 sd
+0 slj
+0 slc
+n 14.123991 5.464213 m 14.542882 5.834389 l 14.264273 5.811986 l 14.079185 6.021431 l ef
+n 14.123991 5.464213 m 14.542882 5.834389 l 14.264273 5.811986 l 14.079185 6.021431 l cp s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 10.210327 7.033875 7.903347 7.903347 345.391335 13.883456 ellipse s
+[] 0 sd
+0 slj
+0 slc
+n 17.765218 9.286360 m 17.684576 8.733190 l 17.882784 8.930266 l 18.159369 8.889945 l ef
+n 17.765218 9.286360 m 17.684576 8.733190 l 17.882784 8.930266 l 18.159369 8.889945 l cp s
+0.100000 slw
+[0.200000] 0 sd
+[0.200000] 0 sd
+0 slc
+1.000000 0.000000 0.000000 srgb
+n 18.098907 7.940924 5.095559 5.095559 76.123301 143.210625 ellipse s
+[] 0 sd
+0 slj
+0 slc
+n 19.673168 12.758936 m 19.289485 13.165491 l 19.320991 12.887764 l 19.117714 12.695923 l ef
+n 19.673168 12.758936 m 19.289485 13.165491 l 19.320991 12.887764 l 19.117714 12.695923 l cp s
+0.100000 slw
+[0.200000] 0 sd
+[0.200000] 0 sd
+0 slc
+n 20.523276 17.455177 4.647800 4.647800 262.370045 335.408063 ellipse s
+[] 0 sd
+0 slj
+0 slc
+n 24.864022 15.878065 m 24.473265 15.478304 l 24.749496 15.520981 l 24.949377 15.325603 l ef
+n 24.864022 15.878065 m 24.473265 15.478304 l 24.749496 15.520981 l 24.949377 15.325603 l cp s
+0.100000 slw
+[0.200000] 0 sd
+[0.200000] 0 sd
+0 slc
+n 22.877863 13.726900 3.137477 3.137477 198.708808 306.782461 ellipse s
+[] 0 sd
+0 slj
+0 slc
+n 25.013538 11.487115 m 24.488799 11.294373 l 24.756517 11.214048 l 24.852887 10.951679 l ef
+n 25.013538 11.487115 m 24.488799 11.294373 l 24.756517 11.214048 l 24.852887 10.951679 l cp s
+0.100000 slw
+[0.200000] 0 sd
+[0.200000] 0 sd
+0 slc
+n 20.651986 8.352373 5.405747 5.405747 237.008785 291.992378 ellipse s
+[] 0 sd
+0 slj
+0 slc
+n 23.007451 3.516038 m 22.448609 3.502032 l 22.676347 3.339982 l 22.683350 3.060561 l ef
+n 23.007451 3.516038 m 22.448609 3.502032 l 22.676347 3.339982 l 22.683350 3.060561 l cp s
+0.100000 slw
+[0.200000] 0 sd
+[0.200000] 0 sd
+0 slc
+n 20.212569 -19.590058 24.545884 24.545884 83.309864 94.281036 ellipse s
+[] 0 sd
+0 slj
+0 slc
+n 23.443465 4.736181 m 22.983393 5.053725 l 23.072158 4.788686 l 22.913386 4.558651 l ef
+n 23.443465 4.736181 m 22.983393 5.053725 l 23.072158 4.788686 l 22.913386 4.558651 l cp s
+showpage