Se dau n orae. Se cunoate distana dintre oricare dou orae. Un
distribuitor de carte caut s-i fac un depozit n unul dintre aceste orae. Se cere s se gseasc traseul optim de la depozit ctre celelalte orae astfel nct distana total pe care o va parcurge pentru a distribui n toate celelalte n-1 orae s fie minim. S se precizeze care ar fi oraul n care s se afle depozitul pentru ca toate celelalte orae s fie uor accesibile {din acel centru de depozitare s se poat pleca spre ct mai multe alte orae. Rezolvare: program ora!depozit" uses crt" t#pe muc$ie%record vf1& vf'& cost(integer" end" t#pe vector%arra#)1..1**+ of longint" vector1%arra#)1..1**+ of muc$ie" matrice%arra#)1..,*&1..,*+ of longint" var n& i& -& .& v& cost(integer" s& t(vector( /(vector1" a(matrice" f(te/t" procedure citire" var i& -& m(integer" begin assign 0f& 1depozit.t/t23" reset 0f3" readln 0f& n3" m(%*" 4$ile not eof0f3 do begin inc0m3" read 0f&/)m+.vf13" read 0f&/)m+.vf'3" read 0f&/)m+.cost3" end" for i(%1 to m do begin a)/)i+.vf1& /)i+.vf'(%/)i+.cost+" a)/)i+.vf'& /)i+.vf1(%/)i+.cost+" end" 4riteln 01matricea costurilor este(23" for i(%1 to n do begin for -(%1 to n do 4rite 0a)i&-+& 1 13" 2 4riteln" end" end" procedure prim" var i& -& min(integer" begin for i(% to n do s)i+(%v" s)v+(%* for i(%1 to n do t)i+(%*" cost(%*" for .(%1 to n-1 do begin min(%ma/int" for i(%1 to n do if 0s)i+56*3 t$en if 0a)s)i+& i+5min3 and 0a)s)i+& i+56*3 t$en begin min(%a)s)i+& i+" -(%1" end" t)-+(%s)-+" cost(%cost7a)-& s)-++" s)-+(%* for i(%1 to n do if 0s)i+56*3 t$en if 0a)i&s)i++%*3 or 0a)i&s)i++6a)i&-+3 t$en if a )i&-+56* t$een s)i+(%-" end" end" function fii0/(integer3(integer" var .(integer" begin .(%*" for i(%1 to n do if t)i+%/ t$en inc0.3" fii(%." end" procedure tata0v(integer3" var i(integer" begin for 8(%1 to n do if t)v+%i t$en 3 begin t)i+(%v" t)v+(%*" end" end" procedure ora" var ma/&i&-(integer" begin ma/(%*" for i(%1 to n do if fii0i36ma/ t$en ma/(%fii0i3" 4riteln01orasele optime sunt(23 for i(%1 to n do if fii0i3%ma/ t$en begin 4rite0i&2 13" tata0i3" 4rite 01vectorul tata este(23" for -(%1 to n do 4rite0t)-+& 1 13" 4riteln" end" end" begin clrscr" citire" 4riteln01dati vf de pornire23 " readln0v3 " prim " 4riteln01costul arborelui este (2& cost3 " oras" read.e# " end. Problema 2 Se d un graf neorientat. S se creeze un arbore parial de cost minim care s poat fi memorat apoi sub forma unei liste. Rezolvare: 9rogram arbore!lista" uses crt" t#pe muc$ie%record vf1& vf'& cost(integer" end" t#pe vector%arra#)1..,*+ of longint" vector1%arra#)1..1**+of muc$ie" matrice%arra#)1..'*&1..,*+of longint var n&i&-&.&v&cost&#&z&m(integer" s&t&s1&t1(vector" 4 /(vector1" a&a1(matrice" f(te/t" procedure citire" var i&-&m(integer" begin assign 0f& 2depozit.t/t23" reset 0f3" readln 0f&n3" m(%*" 4$ile not eof 0f3 do begin inc0m3" read 0f&/)m+.vf13" read 0f&/)m+.vf'3" read 0f&/)m+.cost3" readln 0f3" end" for i(%1 to m do begin a)/)i+.vf1& /)i+.vf'(%/)i+.cost+" a)/)i+.vf'& /)i+.vf1(%/)i+.cost+" end" 4riteln 0 2matricea costurilor este(23" for i(%1 to n do begin for -(%1 to n do 4rite 0a)i&-+& 2 23" 4riteln end" end" function fii 0#(integer3(integer" var .&-(integer" begin .(%*" for -(%1 to n do if t)-+%# t$en inc0.3" fii(%." end" procedure prim 0a(matrice3" var i&-&min(integer" begin min(%ma/int" for i(%1 to n do if 0s)i+56*3 t$en if 0a)s)i+& i+5min3 and 0a)s)i+&i+56* 5 t$en begin min(%a)s)i+& i+" -(%i" end" if 000s)-+56v3 and 0fii0s)-+3%*33 or 0s)-+%v3 and 0fii0s)-+35%1333 t$en begin t)-+(%s)-+" cost(%cost7a)-&s)-++" s)-+(%*" for i(%1 to n do if 0s)i+56*3 t$en if 0a)i&s)i++%*3 or 0a)i&s)i++6a)i&-+3 t$en if a)i&-+56* t$en s)i+(%-" inc0m3" end" else begin a1(%a" a1)s)-+&-+(%*" prim 0a13" end" end" begin clrscr" citire" 4riteln02dati vf de pornire23" readln0v3" m(%*" for i(%1 to n do s)i+(%v" s)v+(%*" for i(%1 to n do t)i+(%*" cost(%*" repeat prim0a3" until m%n-1" 4rite 02vectorul tata este(23" for i(%1 to n do 4rite 0t)i+& 2 23" 4riteln" 4riteln 02costul arborelui este(2 & cost3" read.e#" end. Problema 3 6 Se d un graf orientat i se cere s se afle dac e/ist un arbore parial de cost minim. :ar o arborescen de cost minim; :ac e/ist s se afle care este este vrful acesteia. Rezolvare program arborescenta" uses crt" t#pe muc$ie%record vf1&vf'&cost(integer" end" t#pe vector%arra#)1..1**+ of longint" vector1%arra#)1..1**+ of muc$ie" matrice%arra#)1..,*&1..,*+ of longint" var n&i&-&.&v&cost(integer" s&t(vector" /(vector1" a(matrice" f(te/t" procedure citire" var i&-&m(integer" begin assign0f&<orient.t/t<3" reset0f3" readln0f&n3"m(%*" 4$ile not eof0f3 do begin inc0m3" read0f&/)m+.vf13" read0f&/)m+.vf'3" read0f&/)m+.cost3" readln0f3" end" for i(%1 to m do a)/)i+.vf1&/)i+.vf'+(%/)i+.cost" 4riteln0<=atricea costurilor este(<3" for i(%1 to n do begin for -(%1 to n do 4rite0a)i&-+&< <3" 4riteln" end" end" procedure prim" var i&-&min(integer" begin for i(%1 to n do s)i+(%v" 7 s)v+(%*" for i(%1 to n do t)i+(%*" cost(%*" for .(%1 to n-1 do begin min(%ma/int" for i(%1 to n do if 0s)i+56*3 t$en if 0a)s)i+&i+5min3 and 0a)s)i+&i+56*3 t$en begin min(%a)s)i+&i+" -(%i" end" t)-+(%s)-+" cost(%cost7a)s)-+&-+" s)-+(%*" for i(%1 to n do if 0s)i+56*3 t$en if 0a)s)i+&i+%*3 or 0a)s)i+&i+6a)-&i+3 t$en if a)-&i+56* t$en s)i+(%-" end" end" begin {main clrscr" citire" 4riteln0<:ati vf de pornire><3"readln0v3" prim" 4riteln0<?ectorul tata este(<3" for i(%1 to n do 4rite0t)i+&< <3" 4riteln0<@ostul arborelui este(<&cost3" read.e#" end. Problema 4 Se d un graf cone/. Se cere mprirea acestuia n m arbori pariali de cost minim fiecare cu p vrfuri. S se afieze aceti arbori. Rezolvare program arbori" uses crt" t#pe vector%arra#)1..1**+ of longint" program m!arbori" uses crt" t#pe vector%arra#)1..1**+ of longint" matrice%arra#)1..,*&1..,*+ of longint" 8 var n&i&-&.&v&cost&p&m(integer" s&t(vector" a(matrice" f(te/t" procedure citire" var i&-(integer" begin assign0f&<prim.t/t<3" reset0f3" readln0f&n3" for i(%1 to n do begin for -(%1 to n do read0f&a)i&-+3" readln0f3" end" 4riteln0<=atricea costurilor este(<3" for i(%1 to n do begin for -(%1 to n do 4rite0a)i&-+&< <3" 4riteln" end" end" procedure prim" var i&-&min&$(integer" begin cost(%*" for $(%1 to p-1 do begin min(%ma/int" for i(%1 to n do if 0s)i+6*3 t$en if 0a)s)i+&i+5min3 and 0a)s)i+&i+56*3 t$en begin min(%a)s)i+&i+" -(%i" end" t)-+(%s)-+" cost(%cost7a)-&s)-++" s)-+(%*" 4rite0-&< <3" for i(%1 to n do if 0s)i+6*3 t$en if 0a)i&s)i++%*3 or 0a)i&s)i++6a)i&-+3 t$en if a)i&-+56* t$en 9 s)i+(%-" t)-+(%-1" s)-+(%-1" for i(%1 to n do begin a)i&-+(%*" a)-&i+(%*" end" end" 4rite0<@ostul arborelui este(<&cost3" end" begin {main clrscr" citire" 4riteln0<:ati vf de pornire><3"readln0v3" 4rite0<m%<3"read0m3" 4rite0<p%<3"read0p3" for i(%1 to n do s)i+(%v" s)v+(%*" for i(%1 to n do t)i+(%*" for .(%1 to m-1 do begin for i(%1 to n do begin if t)i+%* t$en begin 4rite0i&< <3" prim" for -(%1 to n do if t)-+%* t$en s)-+(%i" s)i+(%-1"4riteln" end" s)v+(%-1" t)v+(%-1" end" end" read.e#" end. Problema 5 Se definete o muc$ie a unui graf neorientat ca fiind o nregistrare cu trei cmpuri& dou vrfuri e/tremiti i un cost afiare. S se afieze muc$ia de cost minim. Rezolvare 9rogram cost" 10 t#pe muc$ie%record" vf1& vf'& cost(integer" end" var v(arra#)1..1**+ of muc$ie" m&n(integer" procedure citire" var i(b#te" begin read0m3" read0n3" for i(%1to m do 4it$ v0i3 do repeat read0vf1& vf'& cost3" until 0vf16%13and0vf15%n3and0vf'6%13and0vf'5%n3and0vf156vf'3and 0cost6*3" min(%v)i+.cost" for i(%'to m do if v)i+.cost%min t$en min(%v)i+.cost" for i(%1 to m do if v)i+.cost%min t$en 4riteln0i3" end. Problema 6 Se definete o muc$ie a unui graf neorientat ca o nregistrare de trei corpuri& cele dou vrfuri e/tremiti i un cost apreciat muc$iei. :efinim un graf neorientat ca vector al muc$iilor. Se d n6%numrul de noduri. S se construiasc i s se afle matricea de adiacen i apoi s se determine costul mediu. Rezolvare: 9rogram matrice" t#pe muc$ie%record" vf1& vf'& cost(integer" end" t#pe mat(%arra#)1..1**&1..1**+ of b#te var v(arra#)1..1**+ of muc$ie i&-&m&n(integer" s(integer" procedure citire" var v(b#te" med(real" s"integer" begin for i(%1 to n do for -(%1 to n do a)i&-+(%* begin read 0m&n3 for i(%1 to m 4it$ v)i+ do begin repeat read 0vf1& vf'& cost3" until0vf16%13and0vf15%n3and0vf'6%13and0vf'5%n3and0vf156vf'3and 0cost6*3" 11 a)vf1&vf'+(1 end" for i(%1 to n do for -(%1 to n do 4rite 0a)i&-+3" end. Problema 7 Se considera un graf neorientat cu n varfuri numerotate 1..n. @ele n varfuri reprezentand orase. Un automobil pleaca dintr-un oras start& trece prin toate orasele o singura data si revine in orasul din care a plecat. Sttind ca intre unele orase e/ista drumuri directe si intre altele nu sa se afiseze toate traseele pe care le poate urma automobilul. Rezolvare : 9rogram orase " t#pe mat%arra#)1..1**&1..1**+ of *..1" vec%arra#)1..1**+ of b#te" var a(mat" st(vec" start& n (integer" procedure citire" var i(integer" begin read0n3" for i(%1to n do a)i&-+(%*" for i(%1 to n-1 do for -(%i71to n do begin read a)i"-+" a)-&i+(%a)i&-+ end" for i(%1 to n do st)i+(%*" repeat read 0start3 until 0start6%13and0start5%n3" st)i+(%start end" procedure tipar0p(b#te3" var i(b#te" begin for i(%1 to p do 4rite 0st)p+& 1 23" end" function valid0p(b#te3(boolean" var i(b#te" t(boolean" begin t(%true for i(%1 to p-1 do if st)i+(%st)p+ t$en t(%false if a)st)p+& st)p-1++%o t$en t(%false 12 valid(%t" end" procedure b.tr0p(b#te3" var .(b#te" begin for .(%1 to n do begin st)p+(%." if valid 0p3 t$en if 0p%n3and 0a)st)1+&st)p++%13 t$en tipar0p3" else b.tr0p713 end" end" begin b.tr0'3" read0n3" end. Problema 8 S se afieze punctele izolate dintr-un graf neorientat. Rezolvare: 9rogram puncte izolate t#pe mat%arra#)1..'*&1..'*+of integer" var n(integer& a(mat" procedure citire" var i&-(integer" begin readln0n3" for i(%1 to n do a)i&-+(%* for i(%1 to n-1 do for -(%i71 to n do begin repeat read a)i"-+(%* until a)i"-+(%1 or a)i&-+(%* or a)-&i+(%1" end" end" procedure izolare" var s&i&-(integer" begin for i(%1 to n do begin s(%*" for -(%1 to n do 13 s(%s7a)i&-+" if s%a t$en 4riteln 0i& 2este nod izolat23" end" citire izolate" end. Problema 9 :in fiierul te/t se afl numere ntregi aflate pe un singur rnd& separate prin spaii. S se verifice dac secvena de numere formeaz lan elementar sau neeelementar ntr-un graf neorientat. Araful este dat prin matricea de adiacen i se citete de la tastatur. Rezolvare: 9rogram lan" var a(arra#)1..,*&1..,*+ of *..1" v(arra#)1..,*+ of b#te" n(b#te" f(te/t" procedure init" var i&-(b#te" begin readln0n3" for i(%1 to n do a)i&-+(%*" for i(%1 to n-1 do for -(%i71 to n do begin read 0a)i&-+3" a)-&i+(%a)i&-+" end" end" procedure vector" var .&-(b#te" begin assign0f& 1matrice.in23" reset0f3 .(%*" 4$ile 0not0eoln0f333do begin inc0.3" read 0f&v).+3" end" close0f3" for -(%1 to . do 4rite0v)-+& 1 13" t(%true" for -(%1 to .-1 do if a)v)-+&v)-71++(%* t$en t(%false" if t(%false t$en begin 14 for i(%1 to .-1do for -(%i71 to . do if v)i+%v)-+ t$en t(%false" end" if t(true t$en 4riteln 01lantul e elementar23" else 4riten 01lantul e neelementar23" end" begin init" vector" end. Problema 10 Sa se genereze toate grafurile neorientate de n varfuri. Rezolvare : 9rogram graf " t#pe mat%arra#)1..1**&1..1**+ of *..1" vec%arra#)1..1**+ of *..1" var a(mat" st(vec" n(b#te" function final0p(b#te3(boolean" begin if p%n0n-13B' t$en final(%true" else final(%false" end" procedure init" var i(b#te" begin for i(%1 to n do a)i"-+(%* end" procedure tipar0p(b#te3" var i&-(b#te" begin for i(%1 to n-1 do for -(%i-1to n do begin a)i&-+(%st)n0i-13Ci0i713B'7-+" a)-&i+(%a)i&-+" end" for i(% to n do begin for -(%1 to n do 4rite 0a)i&-+& 1 13" 4riteln" end" end" procedure b.tr0p(b#te3" var .(b#te" begin 15 for .(%* to 1 do begin st)p+(%." if final 0p3 t$en tipar0p3 else b.tr0p713 end" end" begin init b.tr013" readln" end. Problema11 Se dau D culori& codificate prin nr. 1& '& E& D. Ffiai toate posibilitile de alctuire a unor drapele tricolore care s conin numai culori dintre cele date& astfel nct( culoarea din mi-loc s aparin unui set dat de patru culori din rndul celor D disponibile" a treia culoare nu poate s fie c unde c este un nr. ntreg cuprins ntre 1 i G" cele trei culori de pe drapel s fie distincte. Rezolvare: program drapele" const n%D" t#pe stiva%arra# )1..1*+ of integer" var st(stiva" ev&as(boolean" n&.(integer" procedure init0.(integer"var st(stiva3" begin st).+(%*" end" procedure succesor0var as(boolean"var st(stiva".(integer3" begin if st).+5D t$en begin st).+(%st).+71" as(%true" end else as(%false" end" procedure valid0var ev(boolean"var st(stiva".(integer3" var i(integer" begin ev(%true" for i(%1 to .-1 do if st)i+%st).+ t$en ev(%false" if 0st)G+%13 or 0st)G+%G3 or 0st)G+%'3 t$en ev(%false" if st)G+%01&'&G3 t$en ev(%false" for i(%1 to H do if st)'+56st)i+ t$en ev(%false" 16 end" function solutie0.(integer3(boolean" begin solutie(%0.%n3" end" procedure tipar" var i(integer" begin for i(%1 to n do 4rite 0st)i+3" 4riteln" end" begin" .(%1"init0.&st3" 4$ile .6* do begin repeat succesor 0as&st&.3" if as t$en valid0ev&st&.3" until 0not as3 or 0as and ev3" if as t$en if solutie0.3 t$en tipar else begin .(%.71" init0.&st3 end else .(%.-1" end" readln" end. Problema12 Se dau n cuburi numerotate 1&'&...&n& de laturi Ii si culori @i& i%1&'&...&n 0fiecare culoare este codificata printr-un caracter3. Sa se afieze toate turnurile care se pot forma lund . cuburi din cele n disponibile& astfel nct( -laturile cuburilor din turn sa fie in ordine cresctoare" -culorile a oricare doua cuburi alturate din turn sa fie diferite. Rezolvare: program cuburi" t#pe stiva%arra# )1..1**+ of integer" var st(stiva" i&n&p&.(integer" as&ev(boolean" I(arra# )1..1*+ of integer" @(arra# )1..1*+ of c$ar" procedure init0.(integer"var st(stiva3" 17 begin st).+(%*" end" procedure succesor0var as(boolean"var st(stiva".(integer3" begin if st).+5n t$en begin st).+(%st).+71" as(%true" end else as(%false" end" procedure valid0var ev(boolean"st(stiva".(integer3" var i(integer" begin ev(%true" for i(%1 to .-1 do if I)st).++5%I)st)i++ t$en ev(%false" if @)st).++%@)st).-1++ t$en ev(%false" end" function solutie0.(integer3(boolean" begin solutie(%0.%p3" end" procedure tipar" var i(integer" begin for i(%1 to p do 4rite0st)i+&2 13" 4riteln" end" begin 4rite01n% 13"read0n3" 4rite01p% 13"read0p3" for i(%1 to n do begin 4rite01I)1&i&2+%23"readln0I)i+3" 4rite01@)1&i&2+%23"readln0@)i+3" end" .(%1"init0.&st3" 4$ile .6* do begin repeat succesor0as&st&.3" if as t$en valid0ev&st&.3" until 0not as3 or 0as and ev3" if as t$en if solutie0.3 t$en tipar else 18 begin .(%.71" init0.&st3" end else .(%.-1" end" end. Problema13 Scriei un program care& folosind metoda bac.trac.ing& afieaz toate modurile de a aran-a elementele unui ir dat de numere ntregi astfel nct in irul rezultat sa nu existe doua elemente negative alturate. Rezolvare: program sir" t#pe stiva%arra#)1..1**+ of integer" vector%arra#)1..1**+ of integer" var st(stiva" n&.&i(integer" as&ev(boolean" a(vector" procedure init0.(integer"var st(stiva3" begin st).+(%* end" procedure succesor0var as(boolean"var st(stiva".(integer3" begin if st).+5n t$en begin st).+(%st).+71" as(%true" end else as(%false" end" procedure valid0var ev(boolean"st(stiva".(integer3" var i(integer" begin ev(%true" for i(%1 to .-1 do if st).+%st)i+ t$en ev(%false" if 0a)st).++5*3 and 0a)st).-1++5*3 t$en ev(%false" end" function solutie0.(integer3(boolean" begin solutie(%0.%n3" end" procedure tipar" var i(integer" begin 19 for i(%1 to n do 4rite0a)st)i++&< <3" 4riteln" end" begin 4rite0<n%<3"readln0n3" for i(%1 to n do begin 4rite01a)1&i&2+%23"readln0a)i+3" end" .(%1"init0.&st3" 4$ile .6* do begin repeat succesor0as&st&.3" if as t$en valid0ev&st&.3" until 0not as3 or 0as and ev3" if as t$en if solutie0.3 t$en tipar else begin .(%.71" init0.&st3" end else .(%.-1" end" end. Problema14 Un comis-voiajor trebuie sa viziteze un numar n de orase. Iniial, acesta se afla intr-unul dintre ele, notat . !omis-voiajorul dorete sa nu treac de doua ori "rin acelai ora, iar la ntoarcere sa revin in oraul . !unoscnd legaturile existente intre orase, se cere sa se ti"reasc toate drumurile "osibile "e care le "oate efectua comis-voiajorul. Rezolvare: program comisv" t#pe stiva%arra#)1..1**+ of integer" var st(stiva" i&-&n&.(integer" as&ev(boolean" a(arra#)1..'*&1..'*+ of integer" procedure init0.(integer"var st(stiva3" begin st).+(%1" end" procedure succesor0var as(boolean"var st(stiva".(integer3" begin if st).+5n t$en begin st).+(%st).+71" 20 as(%true end else as(%false end" procedure valid0var ev(boolean"st(stiva".(integer3" var i(integer" begin ev(%true" if a)st).-1+&st).++%* t$en ev(%false else for i(%1 to .-1 do if st)i+%st).+ t$en ev(%false" if 0.%n3 and 0a)1&st).++%*3 t$en ev(%false end" function solutie0.(integer3(boolean" begin solutie(%0.%n3 end" procedure tipar" var i(integer" begin for i(%1 to n do 4rite01nodul%2&st)i+3" end" begin 4rite01nr. de noduri%23"readln0n3" for i(% 1 to n do for -(%1 to i-1 do begin 4rite01a)1&i&2&2&-&2+%23" readln0a)i&-+3" a)-&i+(%a)-&i+" end" st)1+(%1" .(%'" init0.&st3" 4$ile .6* do begin repeat succesor0as&st&.3" if as t$en valid0ev&st&.3" until 0not as3 or 0as and ev3" if as t$en if solutie0.3 t$en tipar else begin .(%.71" init0.&st3" end else .(%.-1" 21 end" end. Problema15 Sa se afieze nodurile izolate dintr-un graf neorientat Rezolvare: 9rogram noduri izolate" t#pe matrice%arra#)1..,*&1..,*+of b#te var a (matrice" n& i& -(integer" v1& v'%arra#)1..,*+ of b#te" procedure citire var /&#(integer" begin readln0m&n3 for i(%1to n do begin v1)i+(%*& v')i+(%* end" for -(%1 to n do begin repeat read 0/ until 0/6%13and0/5%n3and0#6%13and0#5%n3and0/56#3 v1)/+%v1)/+71" v')#+%v')#+71" end" for i(%1 to n do if 0v1)i+%v')i+3and0v1)i+%*3 t$en 4riteln0-3" end. Problema16 Se citeste de la tastatura matricea de adiacenta asociata unui graf neorientat cu n noduri. Sa se scrie arcele grafurilor in fisierul arce.t/t Rezolvare: 9rogram arce" var a(arra#)1..,*&1..,*+of *..1 f(te/t& n(b#te" procedure citire" var i&-(b#te begin read0n3 for i(%1to n do a)i&-+(%* for i(%1to n do -(%1 to n do read 0a)i&-+3 end procedure rezolvare var i&-(b#te begin assign0f&2arce.t/t23" re4rite0f3" 22 for i(%1 to n do for -(%1to n do if a)i&-+(%1 t$en 4ritln0f&i&2 2&-3" close0f3 end" begin citire" rezolvare" end. Problema 17 Sa se tipareasca toate lanturile neelementare care trec prin varfurile v1 si v'. Rezolvare: 9rogram lanturi" var a(arra#)1..,*&1..,*+of *..1" st(arra#)1..,*+of b#te" v1&v'&n(b#te" procedure init" var i&-(b#te" begin readln0n3" for i(%1 to n-1do for -(%i71to n do begin rea 0a)i&-+3" a)-&i+(%a)i&-+3" end" repeat readln0v1& v'3" until 0v156v'3and0v15%n3and0v16%13and0v'6%13and0v'5%n3" end" procedure tipar0p(b#te3" var i(b#te" begin for i(%1 to p do 4rite0s7i3 end" function valid0p(b#te3(boolean" var i(b#te" t(boolean" begin t%true" for i(%1 to p-1 do if st)p+%st)i+ t$en t(%false" if a)st)p+&st)p-1++%* t$en t(false" valid(%t" end" function final0p(b#te3(boolean" var t(boolean" i(b#te" begin t(%false 23 for i(%1 to p do if v1%st)i+ t$en for -(%1 to p do if v'%st)i+ t$en if p%. t$en t(true" final(%t end" procedure b.tr0p(b#te3" var l(b#te" begin for l(%1 to n do begin st)p+(%l" end" valid 0p3 t$en if final 0p3 t$en tipar0p3" else b.tr0p713" end" begin init" for .(%G to n do b.tr013" end. Powered by http://www.referat.ro/ cel mai complet site cu referate 24