Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
16
Добавлен:
10.12.2013
Размер:
33.71 Кб
Скачать
ѓ« ў  6. ’ЁЇл ¤ ­­ле.

6.1. ‘⥪Ё.

Џгбвм ’ - ­ҐЄ®в®ал© вЁЇ. ђ бᬮваЁ¬ (®вбгвбвўгойЁ© ў Ї бЄ -
«Ґ) вЁЇ "б⥪ н«Ґ¬Ґ­в®ў вЁЇ  ’". …Ј® §­ зҐ­Ёп¬Ё пў«повбп Ї®б«Ґ-
¤®ў вҐ«м­®бвЁ §­ зҐ­Ё© вЁЇ  ’.

ЋЇҐа жЁЁ:

‘¤Ґ« вм_Їгбвл¬ (var s: б⥪ н«Ґ¬Ґ­в®ў вЁЇ  ’).
„®Ў ўЁвм (t: T; var s: б⥪ н«Ґ¬Ґ­в®ў вЁЇ  ’).
‚§пвм (var t: T; var s: б⥪ н«Ґ¬Ґ­в®ў вЁЇ  ’).
Џгбв (s: б⥪ н«Ґ¬Ґ­в®ў вЁЇ  ’): boolean
‚ҐаиЁ­  (s: б⥪ н«Ґ¬Ґ­в®ў вЁЇ  ’): T

(Њл Ї®«м§гҐ¬бп ®Ў®§­ зҐ­Ёп¬Ё, ­ Ї®«­пойЁ¬Ё Ї бЄ «м, е®вп ў
Ї бЄ «Ґ вЁЇ  "б⥪" ­Ґв.) Џа®жҐ¤га  "‘¤Ґ« вм_Їгбвл¬" ¤Ґ« Ґв б⥪
s Їгбвл¬. Џа®жҐ¤га  "„®Ў ўЁвм" ¤®Ў ў«пҐв t ў Є®­Ґж Ї®б«Ґ¤®ў -
⥫쭮бвЁ s. Џа®жҐ¤га  "‚§пвм" ®ЇаҐ¤Ґ«Ґ­ , Ґб«Ё Ї®б«Ґ¤®ў -
⥫쭮бвм s ­ҐЇгбв ; ®­  § ЎЁа Ґв Ё§ ­Ґс Ї®б«Ґ¤­Ё© н«Ґ¬Ґ­в, Є®-
в®ал© бв ­®ўЁвбп §­ зҐ­ЁҐ¬ ЇҐаҐ¬Ґ­­®© t. ‚ла ¦Ґ­ЁҐ "Џгбв(s)" Ёб-
вЁ­­®, Ґб«Ё Ї®б«Ґ¤®ў вҐ«м­®бвм s Їгбв . ‚ла ¦Ґ­ЁҐ "‚ҐаиЁ­ (s)"
®ЇаҐ¤Ґ«Ґ­®, Ґб«Ё Ї®б«Ґ¤®ў вҐ«м­®бвм s ­ҐЇгбв , Ё а ў­® Ї®б«Ґ¤­Ґ-
¬г н«Ґ¬Ґ­вг Ї®б«Ґ¤®ў вҐ«м­®бвЁ s.
Њл Ї®Є ¦Ґ¬, Є Є ¬®¤Ґ«Ёа®ў вм б⥪ ў Ї бЄ «Ґ Ё ¤«п 祣® ®­
¬®¦Ґв Ўлвм ­г¦Ґ­.

Њ®¤Ґ«Ёа®ў ­ЁҐ ®Ја ­ЁзҐ­­®Ј® б⥪  ў ¬ ббЁўҐ.

Ѓг¤Ґ¬ бзЁв вм, зв® Є®«ЁзҐбвў® н«Ґ¬Ґ­в®ў ў б⥪Ґ ­Ґ ЇаҐў®б-
室Ёв ­ҐЄ®в®а®Ј® зЁб«  n. ’®Ј¤  б⥪ ¬®¦­® ¬®¤Ґ«Ёа®ў вм б Ї®-
¬®ймо ¤ўге ЇҐаҐ¬Ґ­­ле:
‘®¤Ґа¦ ­ЁҐ: array [1..n] of T;
„«Ё­ : integer;
бзЁв п, зв® ў б⥪Ґ ­ е®¤пвбп н«Ґ¬Ґ­вл ‘®¤Ґа¦ ­ЁҐ [1],...,‘®¤Ґа-
¦ ­ЁҐ [¤«Ё­ ].

—в®Ўл ᤥ« вм б⥪ Їгбвл¬, ¤®бв в®з­® Ї®«®¦Ёвм
„«Ё­  := 0

„®Ў ўЁвм н«Ґ¬Ґ­в t:
{„«Ё­  < n}
„«Ё­  := „«Ё­ +1;
‘®¤Ґа¦ ­ЁҐ [„«Ё­ ] :=t;

‚§пвм н«Ґ¬Ґ­в ў ЇҐаҐ¬Ґ­­го t:
t := ‘®¤Ґа¦ ­ЁҐ [„«Ё­ ];
„«Ё­  := „«Ё­  - 1;

‘⥪ Їгбв, Ґб«Ё „«Ё­  = 0.

‚ҐаиЁ­  б⥪  а ў­  ‘®¤Ґа¦ ­ЁҐ [„«Ё­ ].

’ ЄЁ¬ ®Ўа §®¬, ў¬Ґбв® ЇҐаҐ¬Ґ­­®© вЁЇ  б⥪ ў Їа®Ја ¬¬Ґ ­  Ї бЄ -
«Ґ ¬®¦­® ЁбЇ®«м§®ў вм ¤ўҐ ЇҐаҐ¬Ґ­­лҐ ‘®¤Ґа¦ ­ЁҐ Ё „«Ё­ . Њ®¦­®
в Є¦Ґ ®ЇаҐ¤Ґ«Ёвм вЁЇ б⥪, § ЇЁб ў

const N = ...
type stack = record
‘®¤Ґа¦ ­ЁҐ: array [1..N] of T;
„«Ё­ : integer;
end;

(Њл Ї®§ў®«пҐ¬ ᥡҐ ЁбЇ®«м§®ў вм Ё¬Ґ­  ЇҐаҐ¬Ґ­­ле Ё§ агббЄЁе
ЎгЄў, е®вп ®Ўлз­® Ї бЄ «м нв®Ј® ­Ґ «оЎЁв.) Џ®б«Ґ нв®Ј® ¬®Јгв
Ўлвм - ў ᮮ⢥вбвўЁЁ б Їа ўЁ« ¬Ё Ї бЄ «п - ®ЇЁб ­л Їа®жҐ¤гал
а Ў®вл б® б⥪®¬. Ќ ЇаЁ¬Ґа, ¬®¦­® ­ ЇЁб вм

procedure „®Ў ўЁвм (t: T; var s: stack);
begin
| {s.„«Ё­  , N}
| s.„«Ё­  := s.„«Ё­  + 1;
| s.‘®¤Ґа¦ ­ЁҐ [s.„«Ё­ ] := t;
end;

€бЇ®«м§®ў ­ЁҐ б⥪ .

Ѓг¤Ґ¬ а бб¬ ваЁў вм Ї®б«Ґ¤®ў вҐ«м­®бвЁ ®вЄалў ойЁебп Ё § Є-
алў ойЁебп ЄагЈ«ле Ё Єў ¤а в­ле бЄ®Ў®Є ( ) [ ]. ‘।Ё ўбҐе в ЄЁе
Ї®б«Ґ¤®ў вҐ«м­®б⥩ ўл¤Ґ«Ё¬ Їа ўЁ«м­лҐ - вҐ, Є®в®алҐ ¬®Јгв Ўлвм
Ї®«гзҐ­л Ї® в ЄЁ¬ Їа ўЁ« ¬:

1) Їгбв п Ї®б«Ґ¤®ў вҐ«м­®бвм Їа ўЁ«м­ .
2) Ґб«Ё Ђ Ё ‚ Їа ўЁ«м­л, в® Ё Ђ‚ Їа ўЁ«м­ .
3) Ґб«Ё Ђ Їа ўЁ«м­ , в® [A] Ё (A) Їа ўЁ«м­л.

ЏаЁ¬Ґа. Џ®б«Ґ¤®ў вҐ«м­®бвЁ (), [[]], [()[]()][] Їа ўЁ«м­л,
  Ї®б«Ґ¤®ў вҐ«м­®бвЁ ], )(, (], ([)] - ­Ґв.

6.1.1. Џа®ўҐаЁвм Їа ўЁ«м­®бвм Ї®б«Ґ¤®ў вҐ«м­®бвЁ §  ўаҐ¬п,
­Ґ ЇаҐў®б室п饥 Є®­бв ­вл, г¬­®¦Ґ­­®© ­  Ґс ¤«Ё­г. ЏаҐ¤Ї®« Ј -
Ґвбп, зв® з«Ґ­л Ї®б«Ґ¤®ў вҐ«м­®бвЁ § Є®¤Ёа®ў ­л зЁб« ¬Ё:
( 1
[ 2
) -1
] -2

ђҐиҐ­ЁҐ. Џгбвм a[1]..a[n] - Їа®ўҐа塞 п Ї®б«Ґ¤®ў вҐ«м­®бвм.
ђ бᬮваЁ¬ б⥪, н«Ґ¬Ґ­в ¬Ё Є®в®а®Ј® пў«повбп ®вЄалў ойЁҐбп
ЄагЈ«лҐ Ё Єў ¤а в­лҐ бЄ®ЎЄЁ (в. Ґ. 1 Ё 2).
‚­ з «Ґ б⥪ ¤Ґ« Ґ¬ Їгбвл¬. „ «ҐҐ Їа®б¬ ваЁў Ґ¬ з«Ґ­л Ї®б-
«Ґ¤®ў вҐ«м­®бвЁ б«Ґў  ­ Їа ў®. ‚бваҐвЁў ®вЄалў ойгобп бЄ®ЎЄг
(ЄагЈ«го Ё«Ё Єў ¤а в­го), Ї®¬Ґй Ґ¬ Ґс ў б⥪. ‚бваҐвЁў § Єалў -
ойгобп, Їа®ўҐа塞, зв® ўҐаиЁ­  ў б⥪Ґ - Ї а­ п Ґ© бЄ®ЎЄ ; Ґб«Ё
нв® ­Ґ в Є, в® ¬®¦­® г⢥ত вм, зв® Ї®б«Ґ¤®ў вҐ«м­®бвм ­ҐЇа -
ўЁ«м­ , Ґб«Ё бЄ®ЎЄ  Ї а­ п, в® § ЎҐаҐ¬ Ґс (ўҐаиЁ­г) Ё§ б⥪ .
Џ®б«Ґ¤®ў вҐ«м­®бвм Їа ўЁ«м­ , Ґб«Ё ў Є®­жҐ б⥪ ®Є §лў Ґвбп
Їгбв.
‘¤Ґ« вм_Џгбвл¬ (s);
i := 0; ЋЎ­ а㦥­ _ЋиЁЎЄ  := false;
{Їа®зЁв ­® i бЁ¬ў®«®ў Ї®б«Ґ¤®ў вҐ«м­®бвЁ}
while (i < n) and not ЋЎ­ а㦥­ _ЋиЁЎЄ  do begin
| i := i + 1;
| if (a[i] = 1) or (a[i] = 2) then begin
| | „®Ў ўЁвм (a[i], s);
| end else begin {a[i] а ў­® -1 Ё«Ё -2}
| | if Џгбв (s) then begin
| | | ЋЎ­ а㦥­ _ЋиЁЎЄ  := true;
| | end else begin
| | | ‚§пвм (t, s);
| | | ЋЎ­ а㦥­  ®иЁЎЄ  := (t <> - a[i]);
| | end;
| end;
end;
Џа ўЁ«м­® := (not ЋЎ­ а㦥­ _ЋиЁЎЄ ) and Џгбв (s);

“ЎҐ¤Ё¬бп ў Їа ўЁ«м­®бвЁ Їа®Ја ¬¬л. (1) …б«Ё Ї®б«Ґ¤®ў -
⥫쭮бвм Ї®бв஥­  Ї® Їа ўЁ« ¬, в® Їа®Ја ¬¬  ¤ б⠮⢥в "¤ ".
ќв® «ҐЈЄ® ¤®Є § вм Ё­¤гЄжЁҐ© Ї® Ї®бв஥­Ёо Їа ўЁ«м­®© Ї®б«Ґ¤®ў -
⥫쭮бвЁ. Ќ ¤® Їа®ўҐаЁвм ¤«п Їгбв®©, ¤«п Ї®б«Ґ¤®ў вҐ«м­®бвЁ AB
ў ЇаҐ¤Ї®«®¦Ґ­ЁЁ, зв® ¤«п A Ё B 㦥 Їа®ўҐаҐ­® - Ё ¤«п Ї®б«Ґ¤®ў -
⥫쭮б⥩ [A] Ё (A) - ў ЇаҐ¤Ї®«®¦Ґ­ЁЁ, зв® ¤«п A 㦥 Їа®ўҐаҐ­®.
„«п Їгбв®© ®зҐўЁ¤­®. „«п AB ¤Ґ©бвўЁп Їа®Ја ¬¬л Їа®Ёб室пв Є Є
¤«п A Ё Є®­з овбп б Їгбвл¬ б⥪®¬; § вҐ¬ ўбҐ Їа®Ёб室Ёв Є Є ¤«п
B. „«п [A] б­ з «  Ї®¬Ґй Ґвбп ў б⥪ ®вЄалў ой п Єў ¤а в­ п
бЄ®ЎЄ  Ё § вҐ¬ ўбҐ Ё¤Ґв Є Є ¤«п A - б в®© а §­ЁжҐ©, зв® ў Ј«гЎЁ-
­Ґ б⥪  «Ґ¦Ёв «Ёи­пп бЄ®ЎЄ . Џ® ®Є®­з ­ЁЁ A б⥪ бв ­®ўЁвбп
Їгбвл¬ - Ґб«Ё ­Ґ бзЁв вм нв®© бЄ®ЎЄЁ -   § вҐ¬ Ё ᮢᥬ Їгбвл¬.
Ђ­ «®ЈЁз­® ¤«п (A).
(2) Џ®Є ¦Ґ¬, зв® Ґб«Ё Їа®Ја ¬¬  § ўҐаи Ґв а Ў®вг б ®вўҐв®¬
"¤ ", в® Ї®б«Ґ¤®ў вҐ«м­®бвм Їа ўЁ«м­ п. ђ бб㦤 Ґ¬ Ё­¤гЄжЁҐ© Ї®
¤«Ё­Ґ Ї®б«Ґ¤®ў вҐ«м­®бвЁ. Џа®б«Ґ¤Ё¬ §  б®бв®п­ЁҐ¬ б⥪  ў Їа®-
жҐбᥠࠡ®вл Їа®Ја ¬¬л. …б«Ё ®­ ў ­ҐЄ®в®ал© Їа®¬Ґ¦гв®з­л© ¬®¬Ґ­в
Їгбв, в® Ї®б«Ґ¤®ў вҐ«м­®бвм а §ЎЁў Ґвбп ­  ¤ўҐ з бвЁ, ¤«п Є ¦¤®©
Ё§ Є®в®але Їа®Ја ¬¬  ¤ Ґв ®вўҐв "¤ "; ®бв Ґвбп ў®бЇ®«м§®ў вмбп
ЇаҐ¤Ї®«®¦Ґ­ЁҐ¬ Ё­¤гЄжЁЁ Ё ®ЇаҐ¤Ґ«Ґ­ЁҐ¬ Їа ўЁ«м­®бвЁ. Џгбвм б⥪
ўбҐ ўаҐ¬п ­ҐЇгбв. ќв® §­ зЁв, зв® Ї®«®¦Ґ­­ п ў ­ҐЈ® ­  ЇҐаў®¬
и ЈҐ бЄ®ЎЄ  Ўг¤Ґв ўл­гв  ­  Ї®б«Ґ¤­Ґ¬ и ЈҐ. ’Ґ¬ б ¬л¬, ЇҐаўл© Ё
Ї®б«Ґ¤­Ё© бЁ¬ў®«л Ї®б«Ґ¤®ў вҐ«м­®бвЁ - нв® Ї а­лҐ бЄ®ЎЄЁ, Ё Ї®б-
«Ґ¤®ў вҐ«м­®бвм Ё¬ҐҐв ўЁ¤ (A) Ё«Ё [A],   а Ў®в  Їа®Ја ¬¬л (Єа®¬Ґ
ЇҐаў®Ј® Ё Ї®б«Ґ¤­ҐЈ® и Ј®ў) ®в«Ёз Ґвбп ®в ҐҐ а Ў®вл ­  A «Ёим
­ «ЁзЁҐ¬ «Ёи­Ґ© бЄ®ЎЄЁ ­  ¤­Ґ б⥪  (а § ҐҐ ­Ґ ўл­Ё¬ ов, ®­  ­Ё-
Є Є ­Ґ ў«ЁпҐв ­  а Ў®вг Їа®Ја ¬¬л). ‘­®ў  ббл« Ґ¬бп ­  ЇаҐ¤Ї®«®-
¦Ґ­ЁҐ Ё­¤гЄжЁЁ Ё ®ЇаҐ¤Ґ«Ґ­ЁҐ Їа ўЁ«м­®бвЁ.

6.1.2. Љ Є гЇа®бвЁвбп Їа®Ја ¬¬ , Ґб«Ё Ё§ўҐбв­®, зв® ў Ї®б-
«Ґ¤®ў вҐ«м­®бвЁ ¬®Јгв Ўлвм в®«мЄ® ЄагЈ«лҐ бЄ®ЎЄЁ?

ђҐиҐ­ЁҐ. ‚ н⮬ б«гз Ґ ®в б⥪  ®бв Ґвбп «Ёим ҐЈ® ¤«Ё­ , Ё
¬л д ЄвЁзҐбЄЁ ЇаЁе®¤Ё¬ Є в Є®¬г г⢥তҐ­Ёо: Ї®б«Ґ¤®ў вҐ«м­®бвм
ЄагЈ«ле бЄ®Ў®Є Їа ўЁ«м­  в®Ј¤  Ё в®«мЄ® в®Ј¤ , Є®Ј¤  ў «оЎ®¬ ­ -
з «м­®¬ ҐҐ ®в१ЄҐ зЁб«® § Єалў ойЁебп бЄ®Ў®Є ­Ґ ЇаҐў®б室Ёв
зЁб«  ®вЄалў ойЁебп,   ¤«п ўбҐ© Ї®б«Ґ¤®ў вҐ«м­®бвЁ нвЁ зЁб« 
а ў­л.

6.1.3. ђҐ «Ё§®ў вм б Ї®¬®ймо ®¤­®Ј® ¬ ббЁў  ¤ў  б⥪ , бг¬-
¬ а­®Ґ Є®«ЁзҐбвў® н«Ґ¬Ґ­в®ў ў Є®в®але ®Ја ­ЁзҐ­® ¤«Ё­®© ¬ ббЁў ;
ўбҐ ¤Ґ©бвўЁп б® б⥪ ¬Ё ¤®«¦­л ўлЇ®«­пвмбп §  ўаҐ¬п, ®Ја ­ЁзҐ­-
­®Ґ Є®­бв ­в®©, ­Ґ § ўЁбп饩 ®в ¤«Ё­л б⥪®ў.

ђҐиҐ­ЁҐ. ‘⥪Ё ¤®«¦­л а бвЁ б Є®­ж®ў ¬ ббЁў  ­ ўбваҐзг ¤агЈ
¤агЈг: ЇҐаўл© ¤®«¦Ґ­ § ­Ё¬ вм ¬Ґбв 
‘®¤Ґа¦ ­ЁҐ[1] ... ‘®¤Ґа¦ ­ЁҐ[„«Ё­ 1],
  ўв®а®© -
‘®¤Ґа¦ ­ЁҐ[n] ... ‘®¤Ґа¦ ­ЁҐ[n - „«Ё­ 2 + 1]
(ўҐаиЁ­л ®Ў®Ёе б⥪®ў § ЇЁб ­л Ї®б«Ґ¤­Ё¬Ё).

6.1.4. ђҐ «Ё§®ў вм k б⥪®ў б н«Ґ¬Ґ­в ¬Ё вЁЇ  T, ®ЎйҐҐ Є®-
«ЁзҐбвў® н«Ґ¬Ґ­в®ў ў Є®в®але ­Ґ ЇаҐў®б室Ёв n, б ЁбЇ®«м§®ў ­ЁҐ¬
¬ ббЁў®ў б㬬 а­®© ¤«Ё­л C*(n+k), § ва зЁў п ­  Є ¦¤®Ґ ¤Ґ©бвўЁҐ
б® б⥪ ¬Ё (Єа®¬Ґ ­ з «м­ле ¤Ґ©бвўЁ©, ¤Ґ« ойЁе ўбҐ б⥪Ё Їгбвл-
¬Ё) ўаҐ¬п, ®Ја ­ЁзҐ­­®Ґ ­ҐЄ®в®а®© Є®­бв ­в®©.

ђҐиҐ­ЁҐ. ЏаЁ¬Ґ­пҐ¬л© ¬Ґв®¤ ­ §лў Ґвбп "ббл«®з­®© ॠ«Ё§ жЁ-
Ґ©". Ћ­ ЁбЇ®«м§гҐв ваЁ ¬ ббЁў :
‘®¤Ґа¦ ­ЁҐ: array [1..n] of T;
‘«Ґ¤гойЁ©: array [1..n] of 0..n;
‚ҐаиЁ­ : array [1..k] of 0..n.
Њ ббЁў ‘®¤Ґа¦ ­ЁҐ Ўг¤Ґ¬ Ё§®Ўа ¦ вм Є Є n п祥Є б ­®¬Ґа ¬Ё
1..n, Є ¦¤ п Ё§ Є®в®але ᮤҐа¦Ёв н«Ґ¬Ґ­в вЁЇ  T. Њ ббЁў ‘«Ґ¤г-
ойЁ© Ё§®Ўа §Ё¬ ў ўЁ¤Ґ бв५®Є, Їа®ўҐ¤п бв५Єг Ё§ i ў j, Ґб«Ё
‘«Ґ¤гойЁ©[i] = j. (…б«Ё ‘«Ґ¤гойЁ©[i] = 0, бв५®Є Ё§ i ­Ґ Їа®ў®-
¤Ё¬.) ‘®¤Ґа¦Ё¬®Ґ s-Ј® б⥪  (s Ё§ 1..k) еа ­Ёвбп в Є: ўҐаиЁ­ 
а ў­  ‘®¤Ґа¦ ­ЁҐ[‚ҐаиЁ­ [s]], ®бв «м­лҐ н«Ґ¬Ґ­вл s-Ј® б⥪  ¬®¦-
­® ­ ©вЁ, Ё¤п Ї® бв५Є ¬ - ¤® вҐе Ї®а, Ї®Є  ®­Ё ­Ґ Є®­з вбп.
ЏаЁ н⮬ (s-л© б⥪ Їгбв) <=> ‚ҐаиЁ­ [s] = 0.
‘в५®з­лҐ ва ҐЄв®аЁЁ, ўл室пйЁҐ Ё§ ‚ҐаиЁ­ [1], ..., ‚ҐаиЁ-
­ [k] (Ё§ вҐе, Є®в®алҐ ­Ґ а ў­л 0) ­Ґ ¤®«¦­л ЇҐаҐбҐЄ вмбп. Џ®¬Ё-
¬® ­Ёе, ­ ¬ Ї®­ ¤®ЎЁвбп ҐйҐ ®¤­  бв५®з­ п ва ҐЄв®аЁп, ᮤҐа¦ -
й п ўбҐ ­ҐЁбЇ®«м§гҐ¬лҐ ў ¤ ­­л© ¬®¬Ґ­в п祩ЄЁ. …Ґ ­ з «® ¬л Ўг-
¤Ґ¬ еа ­Ёвм ў ЇҐаҐ¬Ґ­­®© ‘ў®Ў®¤­ п (а ўҐ­бвў® ‘ў®Ў®¤­ п = 0 ®§-
­ з Ґв, зв® Їгбв®Ј® ¬Ґбв  ­Ґ ®бв «®бм). ‚®в зв® Ї®«гз Ґвбп:


n=8 | a | p | q | d | s | t | v | w |


k=2 | | | ‘ў®Ў®¤­ п

‘®¤Ґа¦ ­ЁҐ = <a,p,q,d,s,t,v,w>, ‘«Ґ¤гойЁ© = <3,0,6,0,0,2,5,4>
‚ҐаиЁ­  = <1, 7>, ‘ў®Ў®¤­ п = 8
‘⥪Ё: 1-л©: p t q a (a-ўҐаиЁ­ ); 2-®©: s v (v-ўҐаиЁ­ ).

procedure Ќ з вм_а Ў®вг; {„Ґ« Ґв ўбҐ б⥪Ё Їгбвл¬Ё}
| var i: integer;
begin
| for i := 1 to k do begin
| | ‚ҐаиЁ­  [i]:=0;
| end;
| for i := 1 to n-1 do begin
| | ‘«Ґ¤гойЁ© [i] := i+1;
| end;
| ‘ў®Ў®¤­ п:=1;
end;

function …бвм_¬Ґбв®: boolean;
begin
| …бвм ЊҐбв® := (‘ў®Ў®¤­ п <> 0);
end;

procedure „®Ў ўЁвм (t: T; s: integer);
| {„®Ў ўЁвм t Є s-¬г б⥪г}
| var i: 1..n;
begin
| {…бвм_¬Ґбв®}
| i := ‘ў®Ў®¤­ п;
| ‘ў®Ў®¤­ п := ‘«Ґ¤гойЁ© [i];
| ‚ҐаиЁ­  [s] :=i;
| ‘®¤Ґа¦ ­ЁҐ [i] := t;
| ‘«Ґ¤гойЁ© [i] := ‚ҐаиЁ­  [s];
end;

function Џгбв (s: integer): boolean; {s-л© б⥪ Їгбв}
begin
| Џгбв := (‚ҐаиЁ­  [s] = 0);
end;

procedure ‚§пвм (var t: T; s: integer);
| {ў§пвм Ё§ s-Ј® б⥪  ў t}
| var i: 1..n;
| begin
| {not Џгбв (s)}
| i := ‚ҐаиЁ­  [s];
| t := ‘®¤Ґа¦ ­ЁҐ [i];
| ‚ҐаиЁ­  [s] := ‘«Ґ¤гойЁ© [i];
| ‘«Ґ¤гойЁ© [i] := ‘ў®Ў®¤­ п;
| ‘ў®Ў®¤­ п := i;
end;

6.2. ЋзҐаҐ¤Ё.

‡­ зҐ­Ёп¬Ё вЁЇ  "®зҐаҐ¤м н«Ґ¬Ґ­в®ў вЁЇ  T", Є Є Ё ¤«п бвҐ-
Є®ў, пў«повбп Ї®б«Ґ¤®ў вҐ«м­®бвЁ §­ зҐ­Ё© вЁЇ  T. ђ §­Ёж  б®бв®-
Ёв ў ⮬, зв® ЎҐагвбп н«Ґ¬Ґ­вл ­Ґ б Є®­ж ,   б ­ з «  (  ¤®Ў ў-
«повбп Ї®-ЇаҐ¦­Ґ¬г ў Є®­Ґж).

ЋЇҐа жЁЁ б ®зҐаҐ¤п¬Ё.

‘¤Ґ« вм_Їгбв®© (var x: ®зҐаҐ¤м н«Ґ¬Ґ­в®ў вЁЇ  T);
„®Ў ўЁвм (t: T, var x: ®зҐаҐ¤м н«Ґ¬Ґ­в®ў вЁЇ  T);
‚§пвм (var t: T, var x: ®зҐаҐ¤м н«Ґ¬Ґ­в®ў вЁЇ  T);
Џгбв  (x: ®зҐаҐ¤м н«Ґ¬Ґ­в®ў вЁЇ  T): boolean;
ЋзҐаҐ¤­®© (x: ®зҐаҐ¤м н«Ґ¬Ґ­в®ў вЁЇ  T): T.

ЏаЁ ўлЇ®«­Ґ­ЁЁ Є®¬ ­¤л "„®Ў ўЁвм" гЄ § ­­л© н«Ґ¬Ґ­в ¤®Ў ў-
«пҐвбп ў Є®­Ґж ®зҐаҐ¤Ё. Љ®¬ ­¤  "‚§пвм" ўлЇ®«­Ё¬ , «Ёим Ґб«Ё
®зҐаҐ¤м ­ҐЇгбв , Ё § ЎЁа Ґв Ё§ ­ҐҐ ЇҐаўл© (Ї®«®¦Ґ­­л© вг¤ 
а ­миҐ ўбҐе) н«Ґ¬Ґ­в, Ї®¬Ґй п ҐЈ® ў t. ‡­ зҐ­ЁҐ¬ дг­ЄжЁЁ "ЋзҐ-
।­®©" (®ЇаҐ¤Ґ«Ґ­­®© ¤«п ­ҐЇгбв®© ®зҐаҐ¤Ё) пў«пҐвбп ЇҐаўл© н«Ґ-
¬Ґ­в ®зҐаҐ¤Ё.
Ђ­Ј«Ё©бЄЁҐ ­ §ў ­Ёп б⥪®ў - Last In First Out (Ї®б«Ґ¤­Ё¬
ў®иҐ« - ЇҐаўл¬ ўл襫),   ®зҐаҐ¤Ґ© - First In First Out (ЇҐаўл¬
ў®иҐ« - ЇҐаўл¬ ўл襫).

ђҐ «Ё§ жЁп ®зҐаҐ¤Ґ© ў ¬ ббЁўҐ.

6.2.1. ђҐ «Ё§®ў вм ®ЇҐа жЁЁ б ®зҐаҐ¤мо ®Ја ­ЁзҐ­­®© ¤«Ё­л
в Є, зв®Ўл Є®«ЁзҐбвў® ¤Ґ©бвўЁ© ¤«п Є ¦¤®© ®ЇҐа жЁЁ Ўл«® ®Ја ­Ё-
祭® Є®­бв ­в®©, ­Ґ § ўЁбп饩 ®в ¤«Ё­л ®зҐаҐ¤Ё.

ђҐиҐ­ЁҐ. Ѓг¤Ґ¬ еа ­Ёвм н«Ґ¬Ґ­вл ®зҐаҐ¤Ё ў б®бҐ¤­Ёе н«Ґ¬Ґ­-
в е ¬ ббЁў . ’®Ј¤  ®зҐаҐ¤м Ўг¤Ґв ЇаЁа бв вм бЇа ў  Ё гЎлў вм
б«Ґў . Џ®бЄ®«мЄг ЇаЁ н⮬ ®­  ¬®¦Ґв ¤®©вЁ ¤® Єа п, ᢥ୥¬ ¬ б-
бЁў ў ®Єаг¦­®бвм.
‚ўҐ¤Ґ¬ ¬ ббЁў ‘®¤Ґа¦ ­ЁҐ: array [0..n-1] of T Ё ЇҐаҐ¬Ґ­­лҐ
ЏҐаўл©: 0..n-1,
„«Ё­  : 0..n.
ЏаЁ н⮬ н«Ґ¬Ґ­в ¬Ё ®зҐаҐ¤Ё Ўг¤гв
‘®¤Ґа¦ ­ЁҐ [ЏҐаўл©], ‘®¤Ґа¦ ­ЁҐ [ЏҐаўл© + 1],...,
‘®¤Ґа¦ ­ЁҐ [ЏҐаўл© + „«Ё­  - 1],
Ј¤Ґ б«®¦Ґ­ЁҐ а бб¬ ваЁў Ґвбп Ї® ¬®¤г«о n. (ЏаҐ¤гЇаҐ¦¤Ґ­ЁҐ. …б«Ё
ў¬Ґбв® нв®Ј® ўўҐбвЁ ЇҐаҐ¬Ґ­­лҐ ЏҐаўл© Ё Џ®б«Ґ¤­Ё©, ЇаЁ­Ё¬ ойЁҐ
§­ зҐ­Ёп ў ўлзҐв е Ї® ¬®¤г«о n, в® Їгбв п ®зҐаҐ¤м ¬®¦Ґв Ўлвм
бЇгв ­  б ®зҐаҐ¤мо Ё§ n н«Ґ¬Ґ­в®ў.)

Њ®¤Ґ«Ёа®ў ­ЁҐ ®ЇҐа жЁ©:

‘¤Ґ« вм Џгбв®©:
„«Ё­  := 0;
ЏҐаўл© := 0;

„®Ў ўЁвм н«Ґ¬Ґ­в:
{„«Ё­  < n}
‘®¤Ґа¦ ­ЁҐ [(ЏҐаўл© + „«Ё­ ) mod n] := н«Ґ¬Ґ­в;
„«Ё­  := „«Ё­  + 1;

‚§пвм н«Ґ¬Ґ­в;
{„«Ё­  > 0}
н«Ґ¬Ґ­в := ‘®¤Ґа¦ ­ЁҐ [ЏҐаўл©];
ЏҐаўл© := (ЏҐаўл© + 1) mod n;
„«Ё­  := „«Ё­  - 1;

Џгбв  = („«Ё­  = 0);

ЋзҐаҐ¤­®© = ‘®¤Ґа¦ ­ЁҐ [ЏҐаўл©];

6.2.2. (‘®®ЎйЁ« Ђ.ѓ.Љг譨७Є®) ЏаЁ¤г¬ вм бЇ®б®Ў ¬®¤Ґ«Ёа®-
ў ­Ёп ®зҐаҐ¤Ё б Ї®¬®ймо ¤ўге б⥪®ў (Ё дЁЄбЁа®ў ­­®Ј® зЁб«  ЇҐ-
६Ґ­­ле вЁЇ  T). ЏаЁ н⮬ ®ва Ў®вЄ  n ®ЇҐа жЁ© б ®зҐаҐ¤мо (­ -
з вле, Є®Ј¤  ®зҐаҐ¤м Ўл«  Їгбв ) ¤®«¦­  вॡ®ў вм Ї®ап¤Є  n
¤Ґ©бвўЁ©.

ђҐиҐ­ЁҐ. €­ў аЁ ­в: б⥪Ё, б®бв ў«Ґ­­лҐ Є®­ж ¬Ё, ®Ўа §гов
®зҐаҐ¤м. (ЏҐаҐзЁб«пп н«Ґ¬Ґ­вл ®¤­®Ј® б⥪  ўЈ«гЎм Ё § вҐ¬ н«Ґ-
¬Ґ­вл ўв®а®Ј® ­ аг¦г, ¬л ЇҐаҐзЁб«пҐ¬ ўбҐ н«Ґ¬Ґ­вл ®зҐаҐ¤Ё ®в
ЇҐаў®Ј® ¤® Ї®б«Ґ¤­ҐЈ®.) џб­®, зв® ¤®Ў ў«Ґ­ЁҐ бў®¤Ёвбп Є ¤®Ў ў«Ґ-
­Ёо Є ®¤­®¬г Ё§ б⥪®ў,   Їа®ўҐаЄ  Їгбв®вл - Є Їа®ўҐаЄҐ Їгбв®вл
®Ў®Ёе б⥪®ў. …б«Ё ¬л е®вЁ¬ ў§пвм н«Ґ¬Ґ­в, Ґбвм ¤ў  б«гз п. …б«Ё
б⥪, Ј¤Ґ ­ е®¤Ёвбп ­ з «® ®зҐаҐ¤Ё, ­Ґ Їгбв, в® ЎҐаҐ¬ Ё§ ­ҐЈ®
н«Ґ¬Ґ­в. …б«Ё ®­ Їгбв, в® ЇаҐ¤ў аЁвҐ«м­® ЇҐаҐЇЁблў Ґ¬ ў ­ҐЈ® ўбҐ
н«Ґ¬Ґ­вл ўв®а®Ј® б⥪ , ¬Ґ­пп Ї®а冷Є (нв® Їа®Ёб室Ёв б ¬® ЇаЁ
ЇҐаҐЄ« ¤лў ­ЁЁ Ё§ б⥪  ў б⥪) Ё бў®¤Ё¬ ¤Ґ«® Є ЇҐаў®¬г б«гз о.
•®вп зЁб«® ¤Ґ©бвўЁ© ЇаЁ н⮬ Ё ­Ґ ®Ја ­ЁзҐ­® Є®­бв ­в®©, ­® ваҐ-
Ў®ў ­ЁҐ § ¤ зЁ ўлЇ®«­Ґ­®, в Є Є Є Є ¦¤л© н«Ґ¬Ґ­в ®зҐаҐ¤Ё ¬®¦Ґв
гз бвў®ў вм ў н⮬ Їа®жҐбᥠ­Ґ Ў®«ҐҐ ®¤­®Ј® а § .

6.2.3. „ҐЄ®¬ ­ §лў ов бвагЄвгаг, б®зҐв ойго ®зҐаҐ¤м Ё б⥪:
Є« бвм Ё § ЎЁа вм н«Ґ¬Ґ­вл ¬®¦­® б ®Ў®Ёе Є®­ж®ў. Љ Є ॠ«Ё§®ў вм
¤ҐЄ ®Ја ­ЁзҐ­­®Ј® а §¬Ґа  ­  Ў §Ґ ¬ ббЁў  в Є, зв®Ўл Є ¦¤ п ®ЇҐ-
а жЁп вॡ®ў «  ®Ја ­ЁзҐ­­®Ј® зЁб«  ¤Ґ©бвўЁ©?

6.2.4. (‘®®ЎйЁ« Ђ.ѓ.Љг譨७Є®.) €¬ҐҐвбп ¤ҐЄ н«Ґ¬Ґ­в®ў вЁЇ 
T Ё Є®­Ґз­®Ґ зЁб«® ЇҐаҐ¬Ґ­­ле вЁЇ  T Ё 楫®Ј® вЁЇ . ‚ ­ з «м­®¬
б®бв®п­ЁЁ ў ¤ҐЄҐ ­ҐЄ®в®а®Ґ зЁб«® н«Ґ¬Ґ­в®ў. ‘®бв ўЁвм Їа®Ја ¬¬г,
Ї®б«Ґ ЁбЇ®«­Ґ­Ёп Є®в®а®© ў ¤ҐЄҐ ®бв «Ёбм Ўл ⥠¦Ґ б ¬лҐ н«Ґ¬Ґ­-
вл,   Ёе зЁб«® Ўл«® Ўл ў ®¤­®© Ё§ 楫ле ЇҐаҐ¬Ґ­­ле.

“Є § ­ЁҐ. (1) ќ«Ґ¬Ґ­вл ¤ҐЄ  ¬®¦­® жЁЄ«ЁзҐбЄЁ ЇҐаҐбв ў«пвм,
§ ЎЁа п б ®¤­®Ј® Є®­ж  Ё Ї®¬Ґй п ў ¤агЈ®©. Џ®б«Ґ нв®Ј®, ᤥ« ў
бв®«мЄ® ¦Ґ и Ј®ў ў ®Ўа в­®¬ ­ Їа ў«Ґ­ЁЁ, ¬®¦­® ўҐа­гвм ўбҐ ­ 
¬Ґбв®. (2) Љ Є Ї®­пвм, Їа®и«Ё ¬л Ї®«­л© ЄагЈ Ё«Ё ­Ґ Їа®и«Ё? …б«Ё
Ўл Ўл« Є Є®©-в® н«Ґ¬Ґ­в, § ўҐ¤®¬® ®вбгвбвўгойЁ© ў ¤ҐЄҐ, в® ¬®¦­®
Ўл«® Ўл ҐЈ® Ї®¤бг­гвм Ё ¦¤ вм ўв®аЁз­®Ј® Ї®пў«Ґ­Ёп. Ќ® в ЄЁе
н«Ґ¬Ґ­в®ў ­Ґв. ‚¬Ґбв® нв®Ј® ¬®¦­® ¤«п ¤ ­­®Ј® n ўлЇ®«­Ёвм жЁЄ«Ё-
зҐбЄЁ© б¤ўЁЈ ­  n ¤ў ¦¤л, Ї®¤бг­гў а §­лҐ н«Ґ¬Ґ­вл, Ё Ї®б¬®в-
аҐвм, Ї®пўпвбп «Ё а §­лҐ н«Ґ¬Ґ­вл зҐаҐ§ n и Ј®ў.

ЏаЁ¬Ґ­Ґ­ЁҐ ®зҐаҐ¤Ґ©.

6.2.5. Ќ ЇҐз в вм ў Ї®ап¤ЄҐ ў®§а бв ­Ёп ЇҐаўлҐ n ­ вг-
а «м­ле зЁбҐ«, ў а §«®¦Ґ­ЁҐ Є®в®але ­  Їа®бвлҐ ¬­®¦ЁвҐ«Ё ўе®¤пв
в®«мЄ® зЁб«  2, 3, 5.


ђҐиҐ­ЁҐ. ‚ўҐ¤Ґ¬ ваЁ ®зҐаҐ¤Ё x2, x3, x5, ў Є®в®але Ўг¤Ґ¬
еа ­Ёвм н«Ґ¬Ґ­вл, Є®в®алҐ ў 2 (3, 5) а § Ў®«миҐ ­ ЇҐз в ­­ле, ­®
ҐйҐ ­Ґ ­ ЇҐз в ­­лҐ. ЋЇаҐ¤Ґ«Ё¬ Їа®жҐ¤гаг

procedure ­ ЇҐз в вм_Ё_¤®Ў ўЁвм (t: integer);
begin
| writeln (t);
| ¤®Ў ўЁвм (2*t, x2);
| ¤®Ў ўЁвм (3*t, x3);
| ¤®Ў ўЁвм (5*t, x5);
end;

‚®в б奬  Їа®Ја ¬¬л:

­ ЇҐз в вм_Ё_¤®Ў ўЁвм (1);
k := 1; { k - зЁб«® ­ ЇҐз в ­­ле }
{Ё­ў аЁ ­в: ­ ЇҐз в ­® ў Ї®ап¤ЄҐ ў®§а бв ­Ёп k ¬Ё­Ё¬ «м­ле
з«Ґ­®ў ­г¦­®Ј® ¬­®¦Ґбвў ; ў ®зҐаҐ¤пе н«Ґ¬Ґ­вл, ў¤ў®Ґ, ўв஥ Ё
ўЇпвҐа® Ў®«миЁҐ ­ ЇҐз в ­­ле, ­® ­Ґ ­ ЇҐз в ­­лҐ, а бЇ®«®¦Ґ­-
­лҐ ў ў®§а бв о饬 Ї®ап¤ЄҐ}
while k <> n do begin
| x := min (®зҐаҐ¤­®© (x2), ®зҐаҐ¤­®© (x3), ®зҐаҐ¤­®© (x5));
| ­ ЇҐз в вм_Ё_¤®Ў ўЁвм (x);
| k := k+1;
| ...ў§пвм x Ё§ вҐе ®зҐаҐ¤Ґ©, Ј¤Ґ ®­ Ўл« ®зҐаҐ¤­л¬;
end;

Џгбвм Ё­ў аЁ ­в ўлЇ®«­пҐвбп. ђ бᬮваЁ¬ ­ Ё¬Ґ­миЁ© Ё§ ­Ґ­ -
ЇҐз в ­­ле н«Ґ¬Ґ­в®ў ¬­®¦Ґбвў . ’®Ј¤  ®­ ¤Ґ«Ёвбп ­ жҐ«® ­  ®¤­®
Ё§ зЁбҐ« 2, 3, 5, Ё з бв­®Ґ в Є¦Ґ ЇаЁ­ ¤«Ґ¦Ёв ¬­®¦Ґбвўг. ‡­ зЁв,
®­® ­ ЇҐз в ­®. ‡­ зЁв, x ­ е®¤Ёвбп ў ®¤­®© Ё§ ®зҐаҐ¤Ґ© Ё, б«Ґ-
¤®ў вҐ«м­®, пў«пҐвбп ў ­Ґ© ЇҐаўл¬ (¬Ґ­миЁҐ ­ ЇҐз в ­л,   н«Ґ¬Ґ­-
вл ®зҐаҐ¤Ґ© ­Ґ ­ ЇҐз в ­л). Ќ ЇҐз в ў x, ¬л ¤®«¦­л ҐЈ® Ё§кпвм Ё
¤®Ў ўЁвм ҐЈ® Єа в­лҐ.
„«Ё­л ®зҐаҐ¤Ґ© ­Ґ ЇаҐў®б室пв зЁб«  ­ ЇҐз в ­­ле н«Ґ¬Ґ­в®ў.

‘«Ґ¤гой п § ¤ з  бўп§ ­  б Ја д ¬Ё (Є Є®в®ал¬ ¬л ўҐа­с¬бп ў
Ј« ўҐ 9).

Џгбвм § ¤ ­® Є®­Ґз­®Ґ ¬­®¦Ґбвў®, н«Ґ¬Ґ­вл Є®в®а®Ј® ­ §лў ов
ўҐаиЁ­ ¬Ё,   в Є¦Ґ ­ҐЄ®в®а®Ґ ¬­®¦Ґбвў® гЇ®а冷祭­ле Ї а ўҐаиЁ­,
­ §лў Ґ¬ле ॡࠬЁ. ‚ н⮬ б«гз Ґ Ј®ў®апв, зв® § ¤ ­ ®аЁҐ­вЁа®-
ў ­­л© Ја д. Џ аг <p, q> ­ §лў ов ॡ஬ б ­ з «®¬ p Ё Є®­ж®¬ q;
Ј®ў®апв в Є¦Ґ, зв® ®­® ўл室Ёв Ё§ ўҐаиЁ­л p Ё ўе®¤Ёв ў ўҐаиЁ­г
q. ЋЎлз­® ўҐаиЁ­л Ја д  Ё§®Ўа ¦ ов в®зЄ ¬Ё,   аҐЎа  - бв५Є ¬Ё,
ўҐ¤гйЁ¬Ё Ё§ ­ з «  ў Є®­Ґж. (‚ ᮮ⢥вбвўЁЁ б ®ЇаҐ¤Ґ«Ґ­ЁҐ¬ Ё§
¤ ­­®© ўҐаиЁ­л ў ¤ ­­го ўҐ¤Ґв ­Ґ Ў®«ҐҐ ®¤­®Ј® ॡа ; ў®§¬®¦­л
ॡа , г Є®в®але ­ з «® б®ўЇ ¤ Ґв б Є®­ж®¬.)

6.2.6. €§ўҐбв­®, зв® ®аЁҐ­вЁа®ў ­­л© Ја д бўп§Ґ­, в. Ґ. Ё§
«оЎ®© ўҐаиЁ­л ¬®¦­® Їа®©вЁ ў «оЎго Ї® ॡࠬ. Ља®¬Ґ в®Ј®, Ё§
Є ¦¤®© ўҐаиЁ­л ўл室Ёв бв®«мЄ® ¦Ґ ॡҐа, бЄ®«мЄ® ўе®¤Ёв. „®Є -
§ вм, зв® бгйҐбвўгҐв § ¬Є­гвл© жЁЄ«, Їа®е®¤пйЁ© Ї® Є ¦¤®¬г ॡаг
а®ў­® ®¤Ё­ а §. ‘®бв ўЁвм  «Ј®аЁв¬ ®влбЄ ­Ёп в Є®Ј® жЁЄ« .

ђҐиҐ­ЁҐ. ‡¬ҐҐ© Ўг¤Ґ¬ ­ §лў вм ­ҐЇгбвго ®зҐаҐ¤м Ё§ ўҐаиЁ­, ў
Є®в®а®© «оЎлҐ ¤ўҐ ўҐаиЁ­л ᮥ¤Ё­Ґ­л ॡ஬ Ја д  (­ з «®¬ пў«п-
Ґвбп в  ўҐаиЁ­ , Є®в®а п Ў«Ё¦Ґ Є ­ з «г ®зҐаҐ¤Ё). ‘в®пй п ў ­ -
з «Ґ ®зҐаҐ¤Ё ўҐаиЁ­  Ўг¤Ґв еў®б⮬ §¬ҐЁ, Ї®б«Ґ¤­пп - Ј®«®ў®©. Ќ 
аЁбг­ЄҐ §¬Ґп Ё§®Ўа §Ёвбп ў ўЁ¤Ґ 楯Ё ॡҐа Ја д , бв५ЄЁ ўҐ¤гв
®в еў®бв  Є Ј®«®ўҐ. „®Ў ў«Ґ­ЁҐ ўҐаиЁ­л ў ®зҐаҐ¤м ᮮ⢥вбвўгҐв
а®бвг §¬ҐЁ б Ј®«®ўл, ў§пвЁҐ ўҐаиЁ­л - ®в१ ­Ёо Є®­зЁЄ  еў®бв .
‚­ з «Ґ §¬Ґп б®бв®Ёв Ё§ Ґ¤Ё­б⢥­­®© ўҐаиЁ­л. „ «ҐҐ ¬л б«Ґ-
¤гҐ¬ в Є®¬г Їа ўЁ«г:

while §¬Ґп ўЄ«оз Ґв ­Ґ ўбҐ аҐЎа  do begin
| if Ё§ Ј®«®ўл ўл室Ёв ­ҐЁбЇ®«м§®ў ­­®Ґ ў §¬ҐҐ ॡ஠then begin
| | 㤫Ё­Ёвм §¬Ґо нвЁ¬ ॡ஬
| end else begin
| | {еў®бв §¬ҐЁ ў в®© ¦Ґ ўҐаиЁ­Ґ, зв® Ё Ј®«®ў }
| | ®в१ вм Є®­Ґж еў®бв  Ё ¤®Ў ўЁвм ҐЈ® Є Ј®«®ўҐ
| | {"§¬Ґп ®вЄгблў Ґв Є®­Ґж еў®бв "}
| end;
end;

„®Є ¦Ґ¬, зв® ¬л ¤®бвЁЈ­Ґ¬ 楫Ё.

1) €¤п Ї® §¬ҐҐ ®в еў®бв  Є Ј®«®ўҐ, ¬л ўе®¤Ё¬ ў Є ¦¤го ўҐа-
иЁ­г бв®«мЄ® ¦Ґ а §, бЄ®«мЄ® ўл室Ё¬. ’ Є Є Є ў «оЎго ўҐаиЁ­г
ўе®¤Ёв бв®«мЄ® ¦Ґ ॡҐа, бЄ®«мЄ® ўл室Ёв, в® ­Ґў®§¬®¦­®бвм ўл©вЁ
®§­ з Ґв, зв® ¬л ­ з «Ё ¤ўЁ¦Ґ­ЁҐ ў нв®© ¦Ґ в®зЄҐ.
2) ‡¬Ґп ­Ґ гЄ®а зЁў Ґвбп, Ї®н⮬㠫ЁЎ® ®­  ®еў влў Ґв ўбҐ
ॡа , «ЁЎ®, ­ зЁ­ п б ­ҐЄ®в®а®Ј® ¬®¬Ґ­в , Ўг¤Ґв Ё¬Ґвм Ї®бв®п­-
­го ¤«Ё­г. ‚® ўв®а®¬ б«гз Ґ §¬Ґп Ўг¤Ґв ЎҐбЄ®­Ґз­® "бЄ®«м§Ёвм Ї®
ᥡҐ". ќв® ў®§¬®¦­®, в®«мЄ® Ґб«Ё Ё§ ўбҐе ўҐаиЁ­ §¬ҐЁ ­Ґ ўл室Ёв
­ҐЁбЇ®«м§®ў ­­ле ॡҐа. €§ бўп§­®бвЁ б«Ґ¤гҐв, зв® ЁбЇ®«м§®ў ­л
ўбҐ ॡа .

‡ ¬Ґз ­ЁҐ Ї® ॠ«Ё§ жЁЁ ­  Ї бЄ «Ґ. ‚ҐаиЁ­ ¬Ё Ја д  Ўг¤Ґ¬
бзЁв вм зЁб«  1..n. „«п Є ¦¤®© ўҐаиЁ­л i Ўг¤Ґ¬ еа ­Ёвм зЁб«®
Out[i] ўл室пйЁе Ё§ ­ҐҐ ॡҐа,   в Є¦Ґ ­®¬Ґа  Num[i][1],...,
Num[i][Out[i]] вҐе ўҐаиЁ­, Єг¤  нвЁ аҐЎа  ўҐ¤гв. ‚ Їа®жҐббҐ
Ї®бв஥­Ёп §¬ҐЁ Ўг¤Ґв ўлЎЁа вм ЇҐаў®Ґ бў®Ў®¤­®Ґ ॡа®. ’®Ј¤ 
¤®бв в®з­® Ўг¤Ґв еа ­Ёвм ¤«п Є ¦¤®© ўҐаиЁ­л зЁб«® ўл室пйЁе Ё§
­ҐҐ ЁбЇ®«м§®ў ­­ле ॡҐа - нв® Ўг¤гв ॡа , Ё¤гйЁҐ ў ­ з «Ґ
бЇЁбЄ .

6.2.7. „®Є § вм, зв® ¤«п ўбпЄ®Ј® n бгйҐбвўгҐв Ї®б«Ґ¤®ў -
⥫쭮бвм ­г«Ґ© Ё Ґ¤Ё­Ёж ¤«Ё­л (2 ў б⥯Ґ­Ё n) б® б«Ґ¤гойЁ¬
бў®©бвў®¬: Ґб«Ё "ᢥа­гвм ҐҐ ў Є®«мж®" Ё а бᬮваҐвм ўбҐ да Ј-
¬Ґ­вл ¤«Ё­л n (Ёе зЁб«® а ў­® (2 ў б⥯Ґ­Ё n)), в® ¬л Ї®«гзЁ¬
ўбҐ ў®§¬®¦­лҐ Ї®б«Ґ¤®ў вҐ«м­®бвЁ ­г«Ґ© Ё Ґ¤Ё­Ёж ¤«Ё­л n. Џ®бва®-
Ёвм  «Ј®аЁв¬ ®влбЄ ­Ёп в Є®© Ї®б«Ґ¤®ў вҐ«м­®бвЁ, вॡгойЁ© ­Ґ
Ў®«ҐҐ (C ў б⥯Ґ­Ё n) ¤Ґ©бвўЁ© ¤«п ­ҐЄ®в®а®© Є®­бв ­вл C.

“Є § ­ЁҐ. ђ бᬮваЁ¬ Ја д, ўҐаиЁ­ ¬Ё Є®в®а®Ј® пў«повбп Ї®б-
«Ґ¤®ў вҐ«м­®бвЁ ­г«Ґ© Ё Ґ¤Ё­Ёж ¤«Ё­л (n-1). Ѓг¤Ґ¬ бзЁв вм, зв®
Ё§ ўҐаиЁ­л x ўҐ¤Ґв ॡ஠ў ўҐаиЁ­г y, Ґб«Ё x ¬®¦Ґв Ўлвм ­ з «®¬,
  y - Є®­ж®¬ ­ҐЄ®в®а®© Ї®б«Ґ¤®ў вҐ«м­®бвЁ ¤«Ё­л n. ’®Ј¤  Ё§ Є ¦-
¤®© ўҐаиЁ­л ўе®¤Ёв Ё ўл室Ёв ¤ў  ॡа . –ЁЄ«, Їа®е®¤пйЁ© Ї® ўбҐ¬
ॡࠬ, Ё ¤ бв вॡ㥬го Ї®б«Ґ¤®ў вҐ«м­®бвм.

6.2.8. ђҐ «Ё§®ў вм k ®зҐаҐ¤Ґ© б ®Ја ­ЁзҐ­­®© б㬬 а­®© ¤«Ё-
­®© n, ЁбЇ®«м§гп Ї ¬пвм Ї®ап¤Є  n+k, ЇаЁзҐ¬ Є ¦¤ п ®ЇҐа жЁп
(Єа®¬Ґ ­ з «м­®©, ¤Ґ« о饩 ўбҐ ®зҐаҐ¤Ё Їгбвл¬Ё) ¤®«¦­  вॡ®ў вм
®Ја ­ЁзҐ­­®Ј® Є®­бв ­в®© зЁб«  ¤Ґ©бвўЁ©.

ђҐиҐ­ЁҐ. „Ґ©бвўгҐ¬  ­ «®ЈЁз­® ббл«®з­®© ॠ«Ё§ жЁЁ б⥪®ў:
¬л Ї®¬­Ё¬ (¤«п Є ¦¤®© ®зҐаҐ¤Ё) ЇҐаў®Ј®, Є ¦¤л© з«Ґ­ ®зҐаҐ¤Ё Ї®¬-
­Ёв б«Ґ¤го饣® §  ­Ё¬ (¤«п Ї®б«Ґ¤­ҐЈ® бзЁв Ґвбп, зв® §  ­Ё¬ бв®-
Ёв дЁЄвЁў­л© н«Ґ¬Ґ­в б ­®¬Ґа®¬ 0). Ља®¬Ґ в®Ј®, ¬л ¤®«¦­л ¤«п
Є ¦¤®© ®зҐаҐ¤Ё §­ вм Ї®б«Ґ¤­ҐЈ® (Ґб«Ё ®­ Ґбвм) - Ё­ зҐ ­Ґ
г¤ бвбп ¤®Ў ў«пвм. Љ Є Ё ¤«п б⥪®ў, ®в¤Ґ«м­® Ґбвм 楯м бў®Ў®¤-
­ле п祥Є. ‡ ¬ҐвЁ¬, зв® ¤«п Їгбв®© ®зҐаҐ¤Ё Ё­д®а¬ жЁп ® Ї®б«Ґ¤-
­Ґ¬ н«Ґ¬Ґ­вҐ вҐапҐв б¬лб« - ­® ®­  Ё ­Ґ ЁбЇ®«м§гҐвбп ЇаЁ ¤®Ў ў-
«Ґ­ЁЁ.

‘®¤Ґа¦ ­ЁҐ: array [1..n] of T;
‘«Ґ¤гойЁ©: array [1..n] of 0..n;
ЏҐаўл©: array [1..n] of 0..n;
Џ®б«Ґ¤­Ё©: array [1..k] of 0..n;
‘ў®Ў®¤­ п : 0..n;

procedure ‘¤Ґ« вм_Їгбвл¬;
| var i: integer;
begin
| for i := 1 to n-1 do begin
| | ‘«Ґ¤гойЁ© [i] := i + 1;
| end;
| ‘ў®Ў®¤­ п := 1;
| for i := 1 to k do begin
| | ЏҐаўл© [i]:=0;
| end;
end;

function …бвм_¬Ґбв® : boolean;
begin
| …бвм_¬Ґбв® := ‘ў®Ў®¤­ п <> 0;
end;

function Џгбв  (­®¬Ґа_®зҐаҐ¤Ё: integer): boolean;
begin
| Џгбв  := ЏҐаўл© [­®¬Ґа_®зҐаҐ¤Ё] = 0;
end;

procedure ‚§пвм (var t: T; ­®¬Ґа_®зҐаҐ¤Ё: integer);
| var ЇҐаў: integer;
begin
| {not Џгбв  (­®¬Ґа_®зҐаҐ¤Ё)}
| ЇҐаў := ЏҐаўл© [­®¬Ґа_®зҐаҐ¤Ё];
| t := ‘®¤Ґа¦ ­ЁҐ [ЇҐаў]
| ЏҐаўл© [­®¬Ґа_®зҐаҐ¤Ё] := ‘«Ґ¤гойЁ© [ЇҐаў];
| ‘«Ґ¤гойЁ© [ЇҐаў] := ‘ў®Ў®¤­ п;
| ‘ў®Ў®¤­ п := ЏҐаў;
end;

procedure „®Ў ўЁвм (t: T; ­®¬Ґа_®зҐаҐ¤Ё: integer);
| var ­®ў, Ї®б«: 1..n;
begin
| {…бвм_бў®Ў®¤­®Ґ_¬Ґбв® }
| ­®ў := ‘ў®Ў®¤­ п; ‘ў®Ў®¤­ п := ‘«Ґ¤гойЁ© [‘ў®Ў®¤­ п];
| {Ё§ бЇЁбЄ  бў®Ў®¤­®Ј® ¬Ґбв  Ё§кпв ­®¬Ґа ­®ў}
| if Џгбв  (­®¬Ґа_®зҐаҐ¤Ё) then begin
| | ЏҐаўл© [­®¬Ґа_®зҐаҐ¤Ё] := ­®ў;
| | Џ®б«Ґ¤­Ё© [­®¬Ґа_®зҐаҐ¤Ё] := ­®ў;
| | ‘«Ґ¤гойЁ© [­®ў] := 0;
| | ‘®¤Ґа¦ ­ЁҐ [­®ў] := t;
| end else begin
| | Ї®б« := Џ®б«Ґ¤­Ё© [­®¬Ґа_®зҐаҐ¤Ё];
| | {‘«Ґ¤гойЁ© [Ї®б«] = 0 }
| | ‘«Ґ¤гойЁ© [Ї®б«] := ­®ў;
| | ‘«Ґ¤гойЁ© [­®ў] := 0;
| | ‘®¤Ґа¦ ­ЁҐ [­®ў] := t
| | Џ®б«Ґ¤­Ё© [­®¬Ґа_®зҐаҐ¤Ё] := ­®ў;
| end;
end;

function ЋзҐаҐ¤­®© (­®¬Ґа_®зҐаҐ¤Ё: integer): T;
begin
| ЋзҐаҐ¤­®© := ‘®¤Ґа¦ ­ЁҐ [ЏҐаўл© [­®¬Ґа_®зҐаҐ¤Ё]];
end;

6.2.9. ’  ¦Ґ § ¤ з  ¤«п ¤ҐЄ®ў ў¬Ґбв® ®зҐаҐ¤Ґ©.

“Є § ­ЁҐ. „ҐЄ - бвагЄвга  бЁ¬¬ҐваЁз­ п, Ї®н⮬㠭 ¤® еа -
­Ёвм ббл«ЄЁ ў ®ЎҐ бв®а®­л (ўЇҐаҐ¤ Ё ­ § ¤). ЏаЁ н⮬ 㤮Ў­® Є
Є ¦¤®¬г ¤ҐЄг ¤®Ў ўЁвм дЁЄвЁў­л© н«Ґ¬Ґ­в, § ¬Є­гў ҐЈ® ў Є®«мж®, Ё
в®з­® в Є®Ґ ¦Ґ Є®«мж® ®Ўа §®ў вм Ё§ бў®Ў®¤­ле Ї®§ЁжЁ©.

‚ б«Ґ¤го饩 § ¤ зҐ ¤ҐЄ ЁбЇ®«м§гҐвбп ¤«п еа ­Ґ­Ёп ўҐаиЁ­ ўл-
ЇгЄ«®Ј® ¬­®Ј®гЈ®«м­ЁЄ .

6.2.10. Ќ  Ї«®бЄ®бвЁ § ¤ ­® n в®зҐЄ, Їа®­г¬Ґа®ў ­­ле б«Ґў 
­ Їа ў® (  ЇаЁ а ў­ле  ЎбжЁбб е - б­Ё§г ўўҐае). ‘®бв ўЁвм Їа®Ј-
а ¬¬г, Є®в®а п бва®Ёв ¬­®Ј®гЈ®«м­ЁЄ, пў«пойЁ©бп Ёе ўлЇгЄ«®© ®Ў®-
«®зЄ®©, §  ­Ґ Ў®«ҐҐ 祬 C*n ¤Ґ©бвўЁ©.

ђҐиҐ­ЁҐ. Ѓг¤Ґ¬ ЇаЁб®Ґ¤Ё­пвм в®зЄЁ Є ўлЇгЄ«®© ®Ў®«®зЄҐ ®¤­ 
§  ¤агЈ®©. ‹ҐЈЄ® Ї®Є § вм, зв® Ї®б«Ґ¤­пп ЇаЁб®Ґ¤Ё­Ґ­­ п в®зЄ 
Ўг¤Ґв ®¤­®© Ё§ ўҐаиЁ­ ўлЇгЄ«®© ®Ў®«®зЄЁ. ќвг ўҐаиЁ­г ¬л Ўг¤Ґ¬
­ §лў вм ўл¤Ґ«Ґ­­®©. ЋзҐаҐ¤­ п ЇаЁб®Ґ¤Ё­пҐ¬ п в®зЄ  ўЁ¤­  Ё§ ўл-
¤Ґ«Ґ­­®© (Ї®зҐ¬г?). „®Ї®«­Ё¬ ­ и ¬­®Ј®гЈ®«м­ЁЄ, ўлЇгбвЁў Ё§ ўл-
¤Ґ«Ґ­­®© ўҐаиЁ­л "ЁЈ«г", ўҐ¤гйго ў ЇаЁб®Ґ¤Ё­пҐ¬го в®зЄг. Џ®«г-
зЁвбп ўл஦¤Ґ­­л© ¬­®Ј®гЈ®«м­ЁЄ, Ё ®бв Ґвбп «ЁЄўЁ¤Ёа®ў вм ў ­Ґ¬
"ўЇгЄ«®бвЁ".



[ђЁбг­®Є]



Ѓг¤Ґ¬ еа ­Ёвм ўҐаиЁ­л ¬­®Ј®гЈ®«м­ЁЄ  ў ¤ҐЄҐ ў Ї®ап¤ЄҐ ®Ўе®-
¤  ҐЈ® ЇҐаЁ¬Ґва  Ї® з б®ў®© бв५ЄҐ. ЏаЁ н⮬ ўл¤Ґ«Ґ­­ п ўҐаиЁ­ 
пў«пҐвбп ­ з «®¬ Ё Є®­ж®¬ (Ј®«®ў®© Ё еў®б⮬) ¤ҐЄ . ЏаЁб®Ґ¤Ё­Ґ-
­ЁҐ "ЁЈ«л" ⥯Ґам б®бв®Ёв ў ¤®Ў ў«Ґ­ЁЁ ЇаЁб®Ґ¤Ё­пҐ¬®© ўҐаиЁ­л ў
Ј®«®ўг Ё ў еў®бв ¤ҐЄ . “бва ­Ґ­ЁҐ ўЇгЄ«®б⥩ ­ҐбЄ®«мЄ® Ў®«ҐҐ
б«®¦­®. Ќ §®ўҐ¬ Ї®¤еў®б⮬ Ё Ї®¤Ї®¤еў®б⮬ н«Ґ¬Ґ­вл ¤ҐЄ , бв®-
пйЁҐ §  ҐЈ® еў®б⮬. “бва ­Ґ­ЁҐ ўЇгЄ«®бвЁ г еў®бв  ¤Ґ« Ґвбп в Є:

while Ї® ¤®а®ЈҐ Ё§ еў®бв  ў Ї®¤Ї®¤еў®бв ¬л Ї®ў®а зЁў Ґ¬
| г Ї®¤еў®бв  ў«Ґў® ("ўЇгЄ«®бвм") do begin
| ўлЄЁ­гвм Ї®¤еў®бв Ё§ ¤ҐЄ 
end

’ ЄЁ¬ ¦Ґ бЇ®б®Ў®¬ гбва ­пҐвбп ўЇгЄ«®бвм г Ј®«®ўл ¤ҐЄ .

‡ ¬Ґз ­ЁҐ. „Ґ©бвўЁп б Ї®¤еў®б⮬ Ё Ї®¤Ї®¤еў®б⮬ ­Ґ ўе®¤пв ў
®ЇаҐ¤Ґ«Ґ­ЁҐ ¤ҐЄ , ®¤­ Є® бў®¤пвбп Є ­ҐЎ®«м讬г зЁб«г ¬ ­ЁЇг«пжЁ©
б ¤ҐЄ®¬ (­ ¤® § Ўа вм ваЁ н«Ґ¬Ґ­в  б еў®бв , ᤥ« вм зв® ­ ¤® Ё
ўҐа­гвм).

…йс ®¤­® § ¬Ґз ­ЁҐ. …бвм ¤ў  ўл஦¤Ґ­­ле б«гз п: Ґб«Ё ¬л ў®-
®ЎйҐ ­Ґ Ї®ў®а зЁў Ґ¬ г Ї®еў®бв  (в.Ґ. ваЁ б®бҐ¤­ЁҐ ўҐаиЁ­л «Ґ¦ в
­  ®¤­®© Їаאַ©) Ё Ґб«Ё ¬л Ї®ў®а зЁў Ґ¬ ­  180 Ја ¤гб®ў (в Є Ўл-
ў Ґв, Ґб«Ё ­ и ¬­®Ј®гЈ®«м­ЁЄ Ґбвм ¤ўггЈ®«м­ЁЄ). ‚ ЇҐаў®¬ б«гз Ґ
Ї®¤еў®бв бв®Ёв г¤ «Ёвм (зв®Ўл ў ўлЇгЄ«®© ®Ў®«®зЄҐ ­Ґ Ўл«® «Ёи­Ёе
ўҐаиЁ­),   ў® ўв®а®¬ б«гз Ґ - ®Ўп§ вҐ«м­® ®бв ўЁвм.


6.3. Њ­®¦Ґбвў .

Џгбвм ’ - ­ҐЄ®в®ал© вЁЇ. ‘гйҐбвўгҐв ¬­®Ј® бЇ®б®Ў®ў еа ­Ёвм
(Є®­Ґз­лҐ) ¬­®¦Ґбвў  н«Ґ¬Ґ­в®ў вЁЇ  ’; ўлЎ®а ¬Ґ¦¤г ­Ё¬Ё ®ЇаҐ¤Ґ-
«пҐвбп вЁЇ®¬ T Ё ­ Ў®а®¬ вॡ㥬ле ®ЇҐа жЁ©.

Џ®¤¬­®¦Ґбвў  ¬­®¦Ґбвў  {1..n}.

6.3.1. €бЇ®«м§гп Ї ¬пвм, Їа®Ї®ажЁ®­ «м­го n, еа ­Ёвм
Ї®¤¬­®¦Ґбвў  ¬­®¦Ґбвў  {1..n}.

ЋЇҐа жЁЁ —Ёб«® ¤Ґ©бвўЁ©

‘¤Ґ« вм Їгбвл¬ C*n
Џа®ўҐаЁвм ЇаЁ­ ¤«Ґ¦­®бвм C
„®Ў ўЁвм C
“¤ «Ёвм ‘
ЊЁ­Ё¬ «м­л© н«Ґ¬Ґ­в C*n
Џа®ўҐаЄ  Їгбв®вл C*n

ђҐиҐ­ЁҐ. •а ­Ё¬ ¬­®¦Ґбвў® Є Є array [1..n] of boolean.

6.3.2. ’® ¦Ґ, ­® Їа®ўҐаЄ  Їгбв®вл ¤®«¦­  ўлЇ®«­пвмбп § 
ўаҐ¬п C.

ђҐиҐ­ЁҐ. •а ­Ё¬ ¤®Ї®«­ЁвҐ«м­® Є®«ЁзҐбвў® н«Ґ¬Ґ­в®ў.

6.3.3. ’® ¦Ґ ЇаЁ б«Ґ¤гойЁе ®Ја ­ЁзҐ­Ёпе ­  зЁб«® ¤Ґ©бвўЁ©:

ЋЇҐа жЁЁ —Ёб«® ¤Ґ©бвўЁ©

‘¤Ґ« вм Їгбвл¬ C*n
Џа®ўҐаЁвм ЇаЁ­ ¤«Ґ¦­®бвм C
„®Ў ўЁвм C
“¤ «Ёвм C*n
ЊЁ­Ё¬ «м­л© н«Ґ¬Ґ­в C
Џа®ўҐаЄ  Їгбв®вл C

ђҐиҐ­ЁҐ. „®Ї®«­ЁвҐ«м­® еа ­Ё¬ ¬Ё­Ё¬ «м­л© н«Ґ¬Ґ­в ¬­®-
¦Ґбвў .

6.3.4 ’® ¦Ґ ЇаЁ б«Ґ¤гойЁе ®Ја ­ЁзҐ­Ёпе ­  зЁб«® ¤Ґ©бвўЁ©:

ЋЇҐа жЁЁ —Ёб«® ¤Ґ©бвўЁ©

‘¤Ґ« вм Їгбвл¬ ‘*n
Џа®ўҐаЁвм ЇаЁ­ ¤«Ґ¦­®бвм ‘
„®Ў ўЁвм ‘*n
“¤ «Ёвм ‘
ЊЁ­Ё¬ «м­л© н«Ґ¬Ґ­в ‘
Џа®ўҐаЄ  Їгбв®вл C

ђҐиҐ­ЁҐ. •а ­Ё¬ ¬Ё­Ё¬ «м­л©,   ¤«п Є ¦¤®Ј® - б«Ґ¤гойЁ© Ё
ЇаҐ¤л¤гйЁ© Ї® ўҐ«ЁзЁ­Ґ.


Њ­®¦Ґбвў  楫ле зЁбҐ«.

‚ б«Ґ¤гойЁе § ¤ з е ўҐ«ЁзЁ­  н«Ґ¬Ґ­в®ў ¬­®¦Ґбвў  ­Ґ ®Ја ­Ё-
祭 , ­® Ёе Є®«ЁзҐбвў® ­Ґ ЇаҐў®б室Ёв n.

6.3.5. Џ ¬пвм C*n.

ЋЇҐа жЁЁ —Ёб«® ¤Ґ©бвўЁ©

‘¤Ґ« вм Їгбвл¬ C
—Ёб«® н«Ґ¬Ґ­в®ў C
Џа®ўҐаЁвм ЇаЁ­ ¤«Ґ¦­®бвм C*n
„®Ў ўЁвм ­®ўл©
(§ ўҐ¤®¬® ®вбгвбвўгойЁ©) C
“¤ «Ёвм C*n
ЊЁ­Ё¬ «м­л© н«Ґ¬Ґ­в C*n
‚§пвм Є Є®©-в® н«Ґ¬Ґ­в C

ђҐиҐ­ЁҐ. Њ­®¦Ґбвў® ЇаҐ¤бв ў«пҐ¬ б Ї®¬®ймо ЇҐаҐ¬Ґ­­ле
a:array [1..n] of integer, k: 0..n; ¬­®¦Ґбвў® ᮤҐа¦Ёв k н«Ґ¬Ґ­-
в®ў a[1],...,a[k]; ўбҐ ®­Ё а §«Ёз­л. Џ® бгйҐбвўг ¬л еа ­Ё¬ н«Ґ-
¬Ґ­вл ¬­®¦Ґбвў  ў б⥪Ґ (ЎҐ§ Ї®ўв®аҐ­Ё©).

6.3.6. Џ ¬пвм C*n.

ЋЇҐа жЁЁ —Ёб«® ¤Ґ©бвўЁ©

‘¤Ґ« вм Їгбвл¬ C
Џа®ўҐаЁвм Їгбв®вг C
Џа®ўҐаЁвм ЇаЁ­ ¤«Ґ¦­®бвм C*(log n)
„®Ў ўЁвм ‘*n
“¤ «Ёвм C*n
ЊЁ­Ё¬ «м­л© н«Ґ¬Ґ­в ‘

ђҐиҐ­ЁҐ. ‘¬. аҐиҐ­ЁҐ ЇаҐ¤л¤г饩 § ¤ зЁ б ¤®Ї®«­ЁвҐ«м­л¬ гб-
«®ўЁҐ¬ a[1] < ... < a[k]. ЏаЁ Їа®ўҐаЄҐ ЇаЁ­ ¤«Ґ¦­®бвЁ ЁбЇ®«м§гҐ¬
¤ў®Ёз­л© Ї®ЁбЄ.

‚ б«Ґ¤го饩 § ¤ зҐ Ї®«Ґ§­® Є®¬ЎЁ­Ёа®ў вм а §­лҐ бЇ®б®Ўл.

6.3.7. €бЇ®«м§гп ®ЇЁб ­­®Ґ ў ЇаҐ¤л¤г饩 § ¤ зҐ ЇаҐ¤бв ў«Ґ-
­ЁҐ ¬­®¦Ґбвў, ­ ©вЁ ўбҐ ўҐаиЁ­л ®аЁҐ­вЁа®ў ­­®Ј® Ја д , ¤®бвгЇ-
­лҐ Ё§ ¤ ­­®© Ї® ॡࠬ. (‚ҐаиЁ­л бзЁв Ґ¬ зЁб« ¬Ё 1..n.) ‚६п
­Ґ Ў®«миҐ C * (®ЎйҐҐ зЁб«® ॡҐа, ўл室пйЁе Ё§ ¤®бвгЇ­ле ўҐа-
иЁ­).

ђҐиҐ­ЁҐ. („агЈ®Ґ аҐиҐ­ЁҐ ᬮваЁ ў Ј« ўҐ ® ४габЁЁ.) Џгбвм
num[i] - зЁб«® ॡҐа, ўл室пйЁе Ё§ i, out[i][1], ...,
out[i][num[i]] - ўҐаиЁ­л, Єг¤  ўҐ¤гв ॡа .

procedure „®бвгЇ­лҐ (i: integer);
| {­ ЇҐз в вм ўбҐ ўҐаиЁ­л, ¤®бвгЇ­лҐ Ё§ i, ўЄ«оз п i}
| var X: Ї®¤¬­®¦Ґбвў® 1..n;
| P: Ї®¤¬­®¦Ґбвў® 1..n;
| q, v, w: 1..n;
| k: integer;
begin
| ...ᤥ« вм X, P Їгбвл¬Ё;
| writeln (i);
| ...¤®Ў ўЁвм i Є X, P;
| {(1) P = ¬­®¦Ґбвў® ­ ЇҐз в ­­ле ўҐаиЁ­; P ᮤҐа¦Ёв i;
| (2) ­ ЇҐз в ­л в®«мЄ® ¤®бвгЇ­лҐ Ё§ i ўҐаиЁ­л;
| (3) X - Ї®¤¬­®¦Ґбвў® P;
| (4) ўбҐ ­ ЇҐз в ­­лҐ ўҐаиЁ­л, Ё§ Є®в®але ўл室Ёв
| ॡ஠ў ­Ґ­ ЇҐз в ­­го ўҐаиЁ­г, ЇаЁ­ ¤«Ґ¦ в X}
| while X ­ҐЇгбв® do begin
| | ...ў§пвм Є Є®©-­ЁЎг¤м н«Ґ¬Ґ­в X ў v;
| | for k := 1 to num [v] do begin
| | | w := out [v][k];
| | | if w ­Ґ ЇаЁ­ ¤«Ґ¦Ёв P then begin
| | | | writeln (w);
| | | | ¤®Ў ўЁвм w ў P;
| | | | ¤®Ў ўЁвм w ў X
| | | end;
| | end;
| end;
end;

‘ў®©бвў® (1) ­Ґ ­ аги Ґвбп, в Є Є Є ЇҐз вм Їа®Ёб室Ёв ®¤-
­®ўаҐ¬Ґ­­® б ¤®Ў ў«Ґ­ЁҐ¬ ў P. ‘ў®©бвў  (2): а § v Ўл«® ў X, в® v
¤®бвгЇ­®, Ї®н⮬г w ¤®бвгЇ­®. ‘ў®©бвў® (3) ®зҐўЁ¤­®. ‘ў®©бвў®
(4): ¬л г¤ «Ё«Ё Ё§ X н«Ґ¬Ґ­в v, ­® ўбҐ ўҐаиЁ­л, Єг¤  Ё§ v Ё¤гв
ॡа , ЇҐаҐ¤ нвЁ¬ ­ ЇҐз в ­л.

ЋжҐ­Є  ўаҐ¬Ґ­Ё а Ў®вл. ‡ ¬ҐвЁ¬, зв® Ё§кпвлҐ Ё§ X н«Ґ¬Ґ­вл
Ў®«миҐ вг¤  ­Ґ ¤®Ў ў«повбп, в Є Є Є ®­Ё ў ¬®¬Ґ­в Ё§кпвЁп (Ё,
б«Ґ¤®ў вҐ«м­®, ўбҐЈ¤  Ї®§¦Ґ) ЇаЁ­ ¤«Ґ¦ в P,   ¤®Ў ў«повбп в®«мЄ®
н«Ґ¬Ґ­вл ­Ґ Ё§ P. Џ®н⮬г жЁЄ« while ўлЇ®«­пҐвбп ­Ґ Ў®«ҐҐ, 祬
Ї® а §г, ¤«п ўбҐе ¤®бвгЇ­ле ўҐаиЁ­,   жЁЄ« for ўлЇ®«­пҐвбп
бв®«мЄ® а §, бЄ®«мЄ® Ё§ ўҐаиЁ­л ўл室Ёв ॡҐа.
„«п X ­ ¤® ЁбЇ®«м§®ў вм ЇаҐ¤бв ў«Ґ­ЁҐ б® б⥪®¬ Ё«Ё ®зҐ-
।мо (б¬. ўлиҐ), ¤«п P - Ўг«ҐўбЄЁ© ¬ ббЁў.

6.3.8. ђҐиЁвм ЇаҐ¤л¤гйго § ¤ зг, Ґб«Ё вॡгҐвбп, зв®Ўл ¤®б-
вгЇ­лҐ ўҐаиЁ­л ЇҐз в «Ёбм ў в Є®¬ Ї®ап¤ЄҐ: б­ з «  § ¤ ­­ п ўҐа-
иЁ­ , Ї®в®¬ ҐҐ б®бҐ¤Ё, Ї®в®¬ б®бҐ¤Ё б®бҐ¤Ґ© (ҐйҐ ­Ґ ­ ЇҐз в ­-
­лҐ) Ё в.¤.

“Є § ­ЁҐ. ’ Є Ї®«гзЁвбп, Ґб«Ё ЁбЇ®«м§®ў вм ®зҐаҐ¤м ў ЇаЁўҐ-
¤Ґ­­®¬ ўлиҐ аҐиҐ­ЁЁ: ¤®Є ¦ЁвҐ Ё­¤гЄжЁҐ© Ї® k, зв® бгйҐбвўгҐв ¬®-
¬Ґ­в, ў Є®в®ал© ­ ЇҐз в ­л ўбҐ ўҐаиЁ­л ­  а ббв®п­ЁЁ ­Ґ Ў®«миҐ
k,   ў ®зҐаҐ¤Ё ­ е®¤пвбп ўбҐ ўҐаиЁ­л, г¤ «Ґ­­лҐ а®ў­® ­  k.

Ѓ®«ҐҐ б«®¦­лҐ бЇ®б®Ўл ЇаҐ¤бв ў«Ґ­Ёп ¬­®¦Ґбвў Ўг¤гв а §®Ўа ­л ў
Ј« ў е 11 (•ҐиЁа®ў ­ЁҐ) Ё 12 („ҐаҐўмп).

6.4. ђ §­лҐ § ¤ зЁ.

6.4.1. ђҐ «Ё§®ў вм бвагЄвгаг ¤ ­­ле, Є®в®а п Ё¬ҐҐв ўбҐ вҐ
¦Ґ ®ЇҐа жЁЁ, зв® ¬ ббЁў ¤«Ё­л n,   Ё¬Ґ­­®

­ з вм а Ў®вг
Ї®«®¦Ёвм ў i-о п祩Єг зЁб«® n
г§­ вм, зв® «Ґ¦Ёв ў i-®© п祩ЄҐ

  в Є¦Ґ ®ЇҐа жЁо "гЄ § вм ­®¬Ґа ¬Ё­Ё¬ «м­®Ј® н«Ґ¬Ґ­в " (Ё«Ё ®¤-
­®Ј® Ё§ ¬Ё­Ё¬ «м­ле н«Ґ¬Ґ­в®ў). Љ®«ЁзҐбвў® ¤Ґ©бвўЁ© ¤«п ўбҐе
®ЇҐа жЁ© ¤®«¦­® Ўлвм ­Ґ Ў®«ҐҐ C*log n, ­Ґ бзЁв п ®ЇҐа жЁЁ "­ -
з вм а Ў®вг" (Є®в®а п вॡгҐв ­Ґ Ў®«ҐҐ C*n ¤Ґ©бвўЁ©).

ђҐиҐ­ЁҐ. €бЇ®«м§гҐвбп ЇаЁҐ¬, Ё§«®¦Ґ­­л© ў а §¤Ґ«Ґ ® б®авЁ-
а®ўЄҐ ¤ҐаҐў®¬. €¬Ґ­­®, ­ ¤бва®Ё¬ ­ ¤ н«Ґ¬Ґ­в ¬Ё ¬ ббЁў  Є Є ­ ¤
«Ёбвмп¬Ё ¤ў®Ёз­®Ґ ¤ҐаҐў®, ў Є ¦¤®© ўҐаиЁ­Ґ Є®в®а®Ј® еа ­Ё¬ ¬Ё­Ё-
¬г¬ н«Ґ¬Ґ­в®ў ᮮ⢥вбвўго饣® Ї®¤¤ҐаҐў . Љ®а४вЁа®ўЄ  нв®© Ё­-
д®а¬ жЁЁ,   в Є¦Ґ Їа®б«Ґ¦Ёў ­ЁҐ ЇгвЁ Ё§ Є®а­п Є ¬Ё­Ё¬ «м­®¬г
н«Ґ¬Ґ­вг вॡгов «®Ј аЁд¬ЁзҐбЄ®Ј® зЁб«  ¤Ґ©бвўЁ©.

6.4.2. ЏаЁ®аЁвҐв­ п ®зҐаҐ¤м - нв® ®зҐаҐ¤м, ў Є®в®а®© ў ¦­®
­Ґ в®, Єв® ўбв « Ї®б«Ґ¤­Ё¬ (Ї®а冷Є Ї®¬ҐйҐ­Ёп ў ­ҐҐ ­Ґ ЁЈа Ґв
а®«Ё),   Єв® Ј« ў­ҐҐ. Ѓ®«ҐҐ в®з­®, ЇаЁ Ї®¬ҐйҐ­ЁЁ ў ®зҐаҐ¤м гЄ -
§лў Ґвбп ЇаЁ®аЁвҐв Ї®¬Ґй Ґ¬®Ј® ®ЎкҐЄв  (Ўг¤Ґ¬ бзЁв вм ЇаЁ®аЁвҐвл
楫묨 зЁб« ¬Ё),   ЇаЁ ў§пвЁЁ Ё§ ®зҐаҐ¤Ё ўлЎЁа Ґвбп н«Ґ¬Ґ­в б
­ ЁЎ®«миЁ¬ ЇаЁ®аЁвҐв®¬ (Ё«Ё ®¤Ё­ Ё§ в ЄЁе н«Ґ¬Ґ­в®ў). ђҐ «Ё§®-
ў вм ЇаЁ®аЁвҐв­го ®зҐаҐ¤м в Є, зв®Ўл Ї®¬ҐйҐ­ЁҐ Ё ў§пвЁҐ н«Ґ¬Ґ­в 
вॡ®ў «Ё «®Ј аЁд¬ЁзҐбЄ®Ј® зЁб«  ¤Ґ©бвўЁ© (®в а §¬Ґа  ®зҐаҐ¤Ё).

ђҐиҐ­ЁҐ. ‘«Ґ¤гп  «Ј®аЁв¬г б®авЁа®ўЄЁ ¤ҐаҐў®¬ (ў ҐЈ® ®Є®­з -
⥫쭮¬ ў аЁ ­вҐ), Ўг¤Ґ¬ а §¬Ґй вм н«Ґ¬Ґ­вл ®зҐаҐ¤Ё ў ¬ ббЁўҐ
x[1]..x[k], Ї®¤¤Ґа¦Ёў п в Є®Ґ бў®©бвў®: x[i] бв аиҐ (Ё¬ҐҐв
Ў®«миЁ© ЇаЁ®аЁвҐв) бў®Ёе бл­®ўҐ© x[2i] Ё x[2i+1], Ґб«Ё в Є®ўлҐ
бгйҐбвўгов - Ё, б«Ґ¤®ў вҐ«м­®, ўбпЄЁ© н«Ґ¬Ґ­в бв аиҐ бў®Ёе Ї®-
⮬Є®ў. (‘ўҐ¤Ґ­Ёп ® ЇаЁ®аЁвҐв  в Є¦Ґ еа ­пвбп ў ¬ ббЁўҐ, в Є зв®
¬л Ё¬ҐҐ¬ ¤Ґ«® б ¬ ббЁў®¬ Ї а (н«Ґ¬Ґ­в, ЇаЁ®аЁвҐв).) “¤ «Ґ­ЁҐ
н«Ґ¬Ґ­в  б б®еа ­Ґ­ЁҐ¬ нв®Ј® бў®©бвў  ®ЇЁб ­® ў  «Ј®аЁв¬Ґ б®авЁ-
а®ўЄЁ. Ќ ¤® ҐйҐ 㬥вм ў®ббв ­ ў«Ёў вм бў®©бвў® Ї®б«Ґ ¤®Ў ў«Ґ­Ёп
н«Ґ¬Ґ­в  ў Є®­Ґж. ќв® ¤Ґ« Ґвбп в Є:

t:= ­®¬Ґа ¤®Ў ў«Ґ­­®Ј® н«Ґ¬Ґ­в 
{Ё­ў аЁ ­в: ў ¤ҐаҐўҐ «оЎ®© ЇаҐ¤®Є ЇаЁ®аЁвҐв­ҐҐ Ї®в®¬Є ,
Ґб«Ё нв®в Ї®в®¬®Є - ­Ґ t}
while t - ­Ґ Є®аҐ­м Ё t бв аиҐ бў®ҐЈ® ®вж  do begin
| Ї®¬Ґ­пвм t б ҐЈ® ®в殬
end;

…б«Ё ®зҐаҐ¤м ®Ўа §гов Ја ¦¤ ­Ґ, бв®пйЁҐ ў ўҐаиЁ­ е ¤ҐаҐў , в.Ґ.
§  Є ¦¤л¬ бв®Ёв ¤ў®Ґ,   ЇҐаҐ¤ Є ¦¤л¬ (Єа®¬Ґ ЇҐаў®Ј®) - ®¤Ё­, в®
б¬лб« нв®Ј®  «Ј®аЁв¬  пᥭ: ўбв ў ў Є®­Ґж, ЇаЁ®аЁвҐв­л© Ја ¦¤ -
­Ё­ ­ зЁ­ Ґв Їа®ЎЁа вмбп Є ­ з «г, ўлвҐб­пп ўЇҐаҐ¤Ё бв®пйЁе -
Ї®Є  ­Ґ ўбваҐвЁв Ў®«ҐҐ ЇаЁ®аЁвҐв­®Ј®.

‡ ¬Ґз ­ЁҐ. ЏаЁ®аЁвҐв­го ®зҐаҐ¤м ҐбвҐб⢥­­® ЁбЇ®«м§®ў вм
ЇаЁ ¬®¤Ґ«Ёа®ў ­ЁЁ Їа®вҐЄ ойЁе ў® ўаҐ¬Ґ­Ё Їа®жҐбб®ў. ЏаЁ н⮬
н«Ґ¬Ґ­вл ®зҐаҐ¤Ё - нв® ®¦Ё¤ Ґ¬лҐ б®ЎлвЁп,   Ёе ЇаЁ®аЁвҐв ®ЇаҐ¤Ґ-
«пҐвбп ўаҐ¬Ґ­Ґ¬, Є®Ј¤  ®­Ё Їа®Ё§®©¤гв.
Соседние файлы в папке Шень