ЙЁҐ зЁб«. „ 楫®зЁб«Ґп ваЁж Ё§ n бва®Є Ё m бв®«Ўж®ў. ‚ Є¦¤®© бва®ЄҐ ваЁжл зЁб« гЇ®а冷зҐл Ї® ў®§абвЁо. Ќ©вЁ ўбҐ вЄЁҐ зЁб«, Є®в®алҐ ўбваҐзовбп ў Є¦¤®© бва®ЄҐ ваЁжл.
Џгбвм ўе®¤ «Ј®аЁв Ї®бвгЇов:
1) Є®«ЁзҐбвў® бва®Є – ЇҐаҐҐп n;
2) Є®«ЁзҐбвў® бв®«Ўж®ў – ЇҐаҐҐп m;
3) ваЁж (¤ўгҐал© зЁб«®ў®© ббЁў) – ЇҐаҐҐп A.
€¤Ґп «Ј®аЁв. Џ®пв®, зв® зЁб«®ўлҐ §зҐЁп, ўбваҐзойЁҐбп ў Є¦¤®© бва®ЄҐ ваЁжл, ®Ўп§вҐ«м® ЇаЁбгвбвўгов Ё ў ЇҐаў®© бва®ЄҐ. Џ®нв®г ®¦® ®аЈЁ§®ўвм жЁЄ« Ї® н«ҐҐв ЇҐаў®© бва®ЄЁ Ё ¤«п Є¦¤®Ј® н«ҐҐв Їа®ўҐаЁвм, зв® н«ҐҐвл б вЄЁ ¦Ґ §зҐЁҐ ўбваҐзовбп ў® ўбҐе ¤агЈЁе бва®Єе. „«п Їа®ўҐаЄЁ Ґ®Ўе®¤Ё® ®аЈЁ§®ўвм жЁЄ« Ї® ўбҐ ¤агЈЁ бва®Є, Ё ўгваЁ нв®Ј® жЁЄ«, ў бў®о ®зҐаҐ¤м, жЁЄ« Ї® н«ҐҐв бва®ЄЁ. ЏаЁ нв® б«Ґ¤гҐв ®ЎҐбЇҐзЁвм ¤®ба®з®Ґ ЇаҐЄа饨Ґ жЁЄ«®ў, Ґб«Ё ®Ўаг¦Ёвбп, зв® ў ЄЄ®©-«ЁЎ® бва®ЄҐ ЁбЄ®®Ґ §зҐЁҐ ©¤Ґ® Ё«Ё ҐЈ® §ўҐ¤®® Ґв.
…б«Ё ў ЇҐаў®© бва®ЄҐ ўбваҐзовбп н«ҐҐвл б ®¤ЁЄ®ўл §зҐЁҐ, в® жЁЄ« Ґ®Ўе®¤Ё® ®аЈЁ§®ўвм Ґ Ї® н«ҐҐв, Ї® а§л §зҐЁп. ’Є ЄЄ н«ҐҐвл ў ЇҐаў®© бва®ЄҐ гЇ®а冷зҐл, в® ®¤ЁЄ®ўлҐ §зҐЁп ўбҐЈ¤ абЇ®«Јовбп Ї®¤ап¤.
‡ҐвЁ, зв® ў нв® «Ј®аЁвҐ Ґ ЁбЇ®«м§®ў Ёб室п гЇ®а冷祮бвм н«ҐҐв®ў Ї® бва®Є.
’а㤮ҐЄ®бвм «Ј®аЁв ЁҐҐв Ї®а冷Є n * m 2 (ЄгЎЁзҐбЄЁ©). „«п Є¦¤®Ј® н«ҐҐв ЇҐаў®© бва®ЄЁ (вЄЁе н«ҐҐв®ў m), Їа®бваЁўовбп ўбҐ (Ё«Ё Ї®звЁ ўбҐ) н«ҐҐвл ваЁжл (Єа®Ґ ЇҐаў®© бва®ЄЁ), в.Ґ. (n – 1) m н«ҐҐв®ў.
ЌЁ¦Ґ ЇаЁўҐ¤Ґ ®ЇЁбл© «Ј®аЁв Ђ Ё гбЄ®аҐл© (Ѓ).
Ђ«Ј®аЁв Ђ.
k:=1;
while(k<=m) do {жЁЄ« Ї® ৫Ёзл §зҐЁп 1-© бва®ЄЁ}
begin
i:=2; p:=1; {Ґб«Ё p=0, в® ў ®¤®© Ё§ бва®Є, зЁп б 2-© Ї®
n-о Ґв б®ўЇ¤ҐЁп б A[1,k]}
while (p=1) and (i<=n) do
begin r:=0; {Ґб«Ё r=1, в® б®ўЇ¤ҐЁҐ ©¤Ґ®}
j:=1;
while (r=0) and (j<=m) do
if A[1,k]=A[i,j] then r:=1 else j:=j+1;
p:=r;
end;
if p=1 then write(A[1,k],' ');
{ўлў®¤ ©¤Ґ®Ј® §зҐЁп}
k:=k+1; {ЇҐаҐе®¤ Є б«Ґ¤гойҐг §зҐЁо 1-© бва®ЄЁ}
while (k<=m) and (A[1,k]=A[1,k-1]) do k:=k+1;
end;
АЁв Ѓ.
for i:=2 to n do T[i]:=1; {ббЁў ®Ґа®ў ¤«п бва®Є}
k:=1;
while(k<=m)do {жЁЄ« Ї® ৫Ёзл §зҐЁп 1-© бва®ЄЁ}
begin
i:=2; p:=1; {Ґб«Ё p=0, в® ў ®¤®© Ё§ бва®Є, зЁп б
2-© Ї® n-о Ґв б®ўЇ¤ҐЁп б A[1,k]}
while (p=1) and (i<=n) do
begin
while (T[i]<=m) and (A[i,T[i]]<A[1,k]) do T[i]:=T[i]+1;
if (T[i]>m) or (A[1,k]<>A[i,T[i]]) then p:=0;
{Ґб«Ё p=0, в® б®ўЇ¤ҐЁҐ ®вбгвбвўгҐв}
end;
if p=1 then write(A[1,k],' ');
{ўлў®¤ ©¤Ґ®Ј® §зҐЁп}
k:=k+1; {ЇҐаҐе®¤ Є б«Ґ¤гойҐг §зҐЁо 1-© бва®ЄЁ}
while (k<=m) and (A[1,k]=A[1,k-1]) do k:=k+1;
end;
’а㤮ҐЄ®бвм «Ј®аЁв. Ѓ®«ҐҐ нд䥪⨢Ґ «Ј®аЁв Ѓ б Єў¤авЁз®© ва㤮ҐЄ®бвмо n * m. ‚ Ґ ЁбЇ®«м§гҐвбп гЇ®а冷祮бвм бва®Є. Џа®бваЁўовбп н«ҐҐвл ў® ўбҐе бва®Єе Їа««Ґ«м®, б Ї®®ймо ббЁў ®Ґа®ў Їа®бваЁўҐле н«ҐҐв®ў ў Є¦¤®© Ё§ бва®Є (ббЁў T).
ЗЁ ¤«п б®бв®п⥫쮣® аҐиҐЁп.
4.1. „ ваЁж зЁбҐ« ў ўЁ¤Ґ ¤ўгҐа®Ј® ббЁў Ё§ n бва®Є Ё n бв®«Ўж®ў. ‚뢥бвЁ ҐҐ н«ҐҐвл ў вЄ® Ї®ап¤ЄҐ, ЄЄ нв® Ї®Є§® аЁбгЄҐ:
- | - | - | ||
- | - | |||
- | - | |||
- | - | |||
- | - | - |
—Ёб«Ё ®Ў®§зҐ ®зҐаҐ¤®бвм ЇаЁ ўлў®¤Ґ, зҐав®зЄЁ - вҐ н«ҐҐвл вЎ«Ёжл, Є®в®алҐ ўлў®¤Ёвм Ґ 㦮.
4.2. ђбЇҐзввм Єў¤авго ваЁжг Ё§ n бва®Є Ё n бв®«Ўж®ў Ї® ¤ЁЈ®«п, Їа««Ґ«мл Ј«ў®©, в.Ґ. ў Ї®pп¤ЄҐ, гЄ§® pЁбгЄҐ зЁб«Ё:
4.3. * „ 楫®зЁб«Ґл© ббЁў A, б®бв®пйЁ© Ё§ n бва®Є Ё n бв®«Ўж®ў. ЏҐаҐ¤ўЁгвм ў Ґ н«ҐҐвл Ї® ЄагЈг вЄЁ ®Ўа§®, зв®Ўл ЇҐаўп бва®Є бв« ЇҐаўл бв®«Ўж®, ЇҐаўл© бв®«ЎҐж – Ї®б«Ґ¤Ґ© бва®Є®©, Ї®б«Ґ¤пп бва®Є – Ї®б«Ґ¤Ё бв®«Ўж®. ‡вҐ вЄ ¦Ґ ЇҐаҐбвўЁвм Ґ ЇҐаҐ¤ўЁЈўиЁҐбп н«ҐҐвл ўв®а®© бва®ЄЁ, ўв®а®Ј® бв®«Ўж, ЇаҐ¤Ї®б«Ґ¤Ґ© бва®ЄЁ, ЇаҐ¤Ї®б«Ґ¤ҐЈ® бв®«Ўж Ё в.¤. ЌЇаЁҐа, ббЁў
| ¤®«¦Ґ ЇаҐ®Ўа§®ўвмбп Є ўЁ¤г |
|
4.4. ** ђбЇҐзввм Єў¤pвго ваЁжг A[1..n, 1..n] (n ҐзҐв®Ґ) "Ї® бЇЁа«Ё ®в жҐва", в.Ґ. ў Ї®ап¤ЄҐ, гЄ§® аЁбгЄҐ зЁб«Ё:
4.5. „ ваЁж ў ўЁ¤Ґ ¤ўгҐа®Ј® ббЁў A Ё§ n бва®Є Ё n бв®«Ўж®ў. Ќ©вЁ ўбҐ Їал б®ўЇ¤ойЁе бва®Є Ё бв®«Ўж®ў, в.Ґ. вЄЁҐ Їал §зҐЁ© (i, j), ¤«п Є®в®але ࢥбвў A[i, k] = A[k, j] ўлЇ®«повбп ¤«п ўбҐе k = 1,...,n.
4.6. „ ваЁж A[1..n, 1..m]. „«п ўбҐе A[i, j] = 0 ®Ўг«Ёвм бва®Єг i Ё бв®«ЎҐж j.
4.7. ‚ вpЁжҐ A[1..n, 1..m] ©вЁ бгг н«ҐҐв®ў A[i, j], ЁҐойЁе §¤го p§®бвм Ё¤ҐЄб®ў i – j = k (k ®¦Ґв Ўлвм Ё ®ваЁж⥫мл).
4.8. * „ ваЁж ў ўЁ¤Ґ ¤ўгҐа®Ј® ббЁў A Ё§ n бва®Є Ё m бв®«Ўж®ў. Ќ©вЁ вЄЁҐ ваЁ бва®ЄЁ ў ббЁўҐ (Їгбвм Ёе ®Ґа i, j Ё l ᮮ⢥вб⢥®, ЇаЁзҐ нвЁ ®Ґа Ї®Їа® ৫Ёзл), зв® ¤«п ўбҐе k = 1, ..., m ўлЇ®«пҐвбп:
A[i, k] + A[j, k] = A[l, k].
4.9. „ зЁб«®ўп ваЁж ў ўЁ¤Ґ ¤ўгҐа®Ј® ббЁў Ё§ n бва®Є Ё m бв®«Ўж®ў. “Ї®а冷зЁвм бва®ЄЁ ваЁжл Ї® гЎлўЁо §зҐЁ© бг н«ҐҐв®ў бва®Є.
4.10. * „ ¤ўгҐал© зЁб«®ў®© ббЁў A Ё§ n бва®Є Ё m бв®«Ўж®ў. ЋЇаҐ¤Ґ«Ёвм ўбҐ вЄЁҐ Їал бва®Є (i, j), ЇаЁзҐ i < j, зв® §зҐЁҐ ЁЁ«м®Ј® н«ҐҐв бва®ЄЁ i аў® ЄбЁ«м®г н«ҐҐвг бва®ЄЁ j.
4.11. „ ¤ўгҐал© зЁб«®ў®© ббЁў A Ё§ n бва®Є Ё m бв®«Ўж®ў. ЋЇаҐ¤Ґ«Ёвм ўбҐ вЄЁҐ Їал (i, j), зв® бг н«ҐҐв®ў бва®ЄЁ i аў бгҐ н«ҐҐв®ў бв®«Ўж j.
4.12. ** „ ¤ўгҐал© зЁб«®ў®© ббЁў A Ё§ n бва®Є Ё m бв®«Ўж®ў. ЋЇаҐ¤Ґ«Ёвм ўбҐ вЄЁҐ Їал бва®Є (i, j), ў Є®в®але ЁҐҐвбп Ґ ҐҐҐ, зҐ Ї® r ৫Ёзле Їа н«ҐҐв®ў б б®ўЇ¤ойЁЁ Ґ¦¤г б®Ў®© §зҐЁпЁ. ‘®ўЇ¤ойЁҐ §зҐЁп ®Јгв бв®пвм ў ৫Ёзле бв®«Ўже, ® «оЎ®© н«ҐҐв бва®ЄЁ ®¦Ґв ЇаЁбгвбвў®ўвм Ґ Ў®«ҐҐ, зҐ ў ®¤®© ЇаҐ. ЌЇаЁҐа, ў бва®Єе
4, 5, 0, 1, 4, 1, 4
0, 0, 1, 1, 2, 3, 4
®¦® ўлЎавм б«Ґ¤гойЁҐ Їал: (0, 0), (1, 1), (1, 1), (4, 4).
4.13. * €§ 楫®зЁб«Ґ®Ј® ббЁў ¤«Ёл n бд®аЁа®ўвм ваЁжг n*n, ў Є®в®а®© ЇҐаўп бва®Є б®ўЇ¤Ґв б ¤л ббЁў®, Є¦¤п б«Ґ¤гойп бва®Є ®Ўа§гҐвбп жЁЄ«ЁзҐбЄЁ б¤ўЁЈ® ЇаҐ¤л¤г饩 k Ї®§ЁжЁ© ўЇаў®, Ґб«Ё k > 0 Ё«Ё -k Ї®§ЁжЁ© ў«Ґў®, Ґб«Ё k < 0.
4.14. ** „ зЁб«®ўп ваЁж ў ўЁ¤Ґ ¤ўгҐа®Ј® ббЁў Ё§ n бва®Є Ё m бв®«Ўж®ў. ‚ Є¦¤®© бва®ЄҐ Ё ў Є¦¤® бв®«ЎжҐ ваЁжл зЁб« гЇ®а冷зҐл Ї® ў®§абвЁо. Ќ©вЁ ўбҐ зЁб«, Є®в®алҐ ўбваҐзовбп ў ббЁўҐ в®«мЄ® ®¤Ё а§.
5. ЋЃђЂЃЋ’ЉЂ ’…Љ‘’Ђ
‚ ЏбЄ«Ґ ⥪бв®ўго Ёд®ажЁо ®¦® ৥бвЁвм ў ббЁўҐ бЁў®«®ў Ё«Ё ў бЁў®«м®© бва®ЄҐ. …б«Ё аҐзм Ё¤Ґв ® ᫨⮠⥪бвҐ, 㤮Ў® ЁбЇ®«м§®ўвм ббЁў бЁў®«®ў. ‚ нв® б«гзҐ ®ЇЁбЁҐ ббЁў бЁў®«®ў ®¦Ґв Ўлвм, ЇаЁҐа, б«Ґ¤гойЁ:
const n = 5000;
Var T: array [1..n] of char;
’ҐЄбв ў ббЁў T §®бЁвбп Їг⥠ўў®¤ Ё«Ё ЇаЁбўЁўЁп н«ҐҐв ббЁў T[1], T[2] Ё в.¤. §зҐЁ© ®в¤Ґ«мле бЁў®«®ў. „«п 㤮Ўбвў аЎ®вл б ⥪бв® ў Їа®ЈаҐ ¦Ґ«вҐ«м® ®ЇЁбвм ЇҐаҐҐго, Є®в®ап Ўг¤Ґв ᮤҐа¦вм ⥪гйго ¤«Ёг ⥪бв, ЇаЁҐа:
Var L: integer;
‚з«Ґ нв®© ЇҐаҐҐ®© Ґ®Ўе®¤Ё® ЇаЁбў®Ёвм 0, ў Їа®жҐбᥠўлЇ®«ҐЁп «Ј®аЁв ҐҐ §зҐЁҐ ®¦Ґв 㢥«ЁзЁўвмбп Ё«Ё гҐмивмбп, ЇаЁ нв® б«Ґ¤гҐв б«Ґ¤Ёвм, зв®Ўл ®® Ґ бв«® ҐмиҐ, зҐ 0, Ё«Ё Ў®«миҐ, зҐ n (ЄЄ ў ®ЇЁбЁЁ).
Љ®Ј¤ ў §¤зҐ 㦮 аЎ®ввм б ®в¤Ґ«млЁ б«®ўЁ, ⮠㤮ЎҐҐ ЁбЇ®«м§®ўвм бва®Є®ўлҐ ЇҐаҐҐлҐ Ё«Ё ббЁўл бва®Є. ‚ нв® б«гзҐ ®ЇЁбЁҐ бва®Є бЁў®«®ў ®¦Ґв Ўлвм, ЇаЁҐа, б«Ґ¤гойЁ:
const dl = 100;
m = 50;
Var S1, S2, S3: string[dl];
Slova:array[1..m]of string[dl];
’ҐЄбв §®бЁвбп ў бва®Єг Їг⥠ЇаЁбўЁўЁп ўбҐ© бва®ЄҐ Ї®¤е®¤п饣® §зҐЁп (Є®в®а®Ґ ў ¤® ЇаЁҐаҐ Ґ ¤®«¦® Ўлвм ¤«ЁҐҐ, зҐ dl), Ё«Ё ®ЇҐав®а® ўў®¤ б Є«ўЁвгал, ЇаЁҐа:
S1:=’ЏҐвп’; S2:=’‚бп’; Readln(S3);
’ҐЄгйго ¤«Ёг ⥪бв ў бва®ЄҐ ўбҐЈ¤ ®¦® ўлзЁб«Ёвм дгЄжЁҐ© Length. ЌЇаЁҐа, Ї®б«Ґ ЇаЁбўЁўЁп i:=Length(S1) ўҐ«ЁзЁ i = 4. Ља®Ґ в®Ј®, ®¦® бЄ«ҐЁўвм бва®ЄЁ ®ЇҐажЁҐ© «+», ЇаЁҐа:
S3:=S1+’ ’+S2; i:=Length(S3);
{ђҐ§г«мвв: S3=’ЏҐвп ‚бп’, i = 9}
„®бвгЇ Є ®в¤Ґ«мл бЁў®« ў ббЁўҐ Ё«Ё ў бва®ЄҐ (в.Ґ. ў ®Ў®Ёе б«гзпе) ўлЇ®«пҐвбп Їг⥠㪧Ёп ®Ґа нв®Ј® бЁў®«, в.Ґ. б Ї®®ймо Ё¤ҐЄб, ЇаЁҐа: T[1], S1[i]. Ћв¤Ґ«млҐ бЁў®«л ®¦® баўЁўвм Ґ¦¤г б®Ў®© (®ЇҐажЁпЁ «=», «<>», «<», «<=» Ё в.Ї.). ЏаЁ нв® б«Ґ¤гҐв ЁҐвм ў ўЁ¤г, зв® бва®злҐ ЎгЄўл гЇ®а冷зҐл Ґ¦¤г б®Ў®© ў «дўЁв® Ї®ап¤ЄҐ: ’’<’Ў’< ... <’п’. Ђ«®ЈЁз® гЇ®а冷зҐл Ё §Ј«ўлҐ ЎгЄўл: ’Ђ’<’Ѓ’< ... <’џ’. ЊҐ¦¤г ⥠бࢥЁҐ бва®зле ЎгЄў б §Ј«ўлЁ ҐЄ®а४в®. ‘ва®ЄЁ бЁў®«®ў вЄ¦Ґ ®¦® баўЁўвм, ЇаЁ нв® ўлЇ®«пҐвбп «ҐЄбЁЄ®ЈадЁзҐбЄ®Ґ бࢥЁҐ, вЄ®Ґ ¦Ґ, ЄЄ ЇаЁ ৥饨Ё б«®ў Ї® «дўЁвг (® в®«мЄ® ®в¤Ґ«м® ¤«п бва®зле ЎгЄў Ё ®в¤Ґ«м® ¤«п §Ј«ўле!).
ђбб®ваЁ ап¤ вЁЇ®ўле ЇаЁҐа®ў.
Џ®ЁбЄ Ї®¤бва®ЄЁ ў ⥪бвҐ. ‡¤ ⥪бв T Ё Ї®¤бва®Є S. Ќ©вЁ нвг Ї®¤бва®Єг ў ⥪бвҐ, в.Ґ. ®ЇаҐ¤Ґ«Ёвм в®в ®Ґа бЁў®« i, зЁп б Є®в®а®Ј® S ৥йҐвбп ў ⥪б⥠T.
Ђ«Ј®аЁв, аҐиойЁ© нвг §¤зг, ў жЁЄ«Ґ ®влбЄЁўҐв бЁў®« ў ⥪бвҐ, б®ўЇ¤ойЁ© б 1- бЁў®«® Ї®¤бва®ЄЁ. ЉЄ в®«мЄ® вЄ®Ґ б®ўЇ¤ҐЁҐ ®Ўаг¦Ёвбп, Їа®ўҐаповбп б®ўЇ¤ҐЁп Ї®б«Ґ¤гойЁе бЁў®«®ў Ї®¤бва®ЄЁ Ё ⥪бв.
Const n=250;
dl=50;
Var T:string[n]; {ЏҐаҐҐп ¤«п ⥪бв}
S:string[dl]; {ЏҐаҐҐп ¤«п Ї®¤бва®ЄЁ}
i,j,nt,ns:integer;
begin Readln(T); {‚ў®¤ ⥪бв ¤«Ё®© Ґ Ў®«ҐҐ, зҐ 250 бЁў®«®ў}
Readln(S); {‚ў®¤ Ї®¤бва®ЄЁ ¤«Ё®© Ґ Ў®«ҐҐ, зҐ 30 бЁў®«®ў}
nt:=Length(T); {‚лзЁб«ҐЁҐ ¤«Ёл ⥪бв}
ns:=Length(S); {‚лзЁб«ҐЁҐ ¤«Ёл Ї®¤бва®ЄЁ}
for i:=1 to nt-ns+1 do
{nt-ns+1 – Ї®б«Ґ¤пп Ї®§ЁжЁп ў ⥪бвҐ, б Є®в®а®© ®¦Ґв зЁвмбп Ї®¤бва®Є}
if T[i]=S[1] then
begin j:=2;{Їа®ўҐаЄ б®ўЇ¤ҐЁп ®бв«мле бЁў®«®ў Ї®¤бва®ЄЁ б ⥪бв®}
while (j<=ns)and(T[i+j-1]=S[j]) do
j:=j+1;
{Џ® ®Є®зЁЁ жЁЄ« j=ns+1 в®«мЄ® ў в® б«гзҐ, Ґб«Ё Ўл«® Ї®«®Ґ б®ўЇ¤ҐЁҐ.}
if j=ns+1 then Writeln(i);
{‚лў®¤ ®Ґа бЁў®«, Ј¤Ґ зЁҐвбп Ї®¤бва®Є ў ⥪бвҐ}
end
end.
ќв Їа®Ја ¤Ґ«Ґв ¤¦Ґ Ў®«миҐ, зҐ §¤® ў гб«®ўЁЁ §¤зЁ: ® ®влбЄЁўҐв Ё ўлў®¤Ёв ўбҐ б®ўЇ¤ҐЁп Ї®¤бва®ЄЁ б бЁў®«Ё ⥪бв, Ґ в®«мЄ® ЇҐаў®Ґ, Ґб«Ё б®ўЇ¤ҐЁ© б® ¤Ґ«Ґ Ў®«ҐҐ ®¤®Ј®.
’а㤮ҐЄ®бвм «Ј®аЁв.‚ Ёег¤иҐ б«гзҐ ўгв२© жЁЄ« ўлЇ®«пҐвбп ns а§ ¤«п Є¦¤®Ј® дЁЄбЁа®ў®Ј® i. вЄ ЄЄ ў® ўҐиҐ жЁЄ«Ґ i Ё§ҐпҐвбп ®в 1 Ї®звЁ ¤® ¤«Ёл ⥪бв nt ®Ўйп ва㤮ҐЄ®бвм Ўг¤Ґв Ї®ап¤Є nt * ns.
Џ®ЁбЄ ўбҐе б«®ў, ЁҐойЁебп ў Ј«Ё©бЄ® ⥪бвҐ. ‡¤ ⥪бв T, ў Є®в®а® §ЇЁбл ЇаҐ¤«®¦ҐЁп Ј«Ё©бЄ® п§лЄҐ. Ќ©вЁ Ё ўлўҐбвЁ ў н⮠⥪б⥠ўбҐ б«®ў.
Ђ«Ј®аЁв, аҐиойЁ© нвг §¤зг, ў жЁЄ«Ґ ®влбЄЁўҐв бЁў®« ў ⥪бвҐ, пў«пойЁ©бп ЎгЄў®©. ЉЄ в®«мЄ® вЄ®© бЁў®« ®Ўаг¦Ёвбп, Ї®б«Ґ¤®ўвҐ«м® д®аЁагҐвбп б«®ў® Ё§ ЎгЄў ў ўЁ¤Ґ бва®ЄЁ бЁў®«®ў. „«мҐ©иЁ© Ї®ЁбЄ з« ®ў®Ј® б«®ў Їа®Ё§ў®¤Ёвбп б бЁў®«, абЇ®«®¦Ґ®Ј® ў ⥪б⥠Ї®б«Ґ ®Ўа㦥®Ј® б«®ў.
const n=251;
dl=30;
var T: string[n]; {ЏҐаҐҐп ¤«п ⥪бв}
S: string[dl]; {ЏҐаҐҐп ¤«п б«®ў}
i, nt: integer;
begin Readln(T);
nt:=Length(T); {‚лзЁб«ҐЁҐ ¤«Ёл ⥪бв}
T:=T+’ ’; {„®Ўў«ҐЁҐ Їа®ЎҐ« ў Є®жҐ ⥪бв, зв®Ўл ⥪бв ЁЄ®Ј¤ Ґ §ЄзЁў«бп ЎгЄў®©}
i:=1;
while i<=nt do
if ((T[i]>=’A’)and(T[i]<=’Z’))or
((T[i]>=’a’)and(T[i]<=’z’)) then
{…б«Ё ©¤Ґ ЎгЄў Ї®б«Ґ Ґ ЎгЄўҐ®Ј® бЁў®« ў ⥪бвҐ}
begin S:=T[i]; i:=i+1;
while ((T[i]>=’A’)and(T[i]<=’Z’))or
((T[i]>=’a’)and(T[i]<=’z’)) do
begin S:=S+T[i]; i:=i+1; end;
{Џ®ЁбЄ Є®ж б«®ў ў ⥪б⥠Ї® бЁў®«г «Ґ ЎгЄў» Ё «ЄЇ«ЁўЁҐ» б«®ў ў бва®ЄҐ S. Љ®Ј¤ нв®в (ўв®а®©) жЁЄ« §Є®зЁвбп, i Ўг¤Ґв вЄЁ, зв® T[i] – Ґ ЎгЄўҐл© бЁў®«.}
Writeln(S); {‚лў®¤ Є®Ї«Ґ®Ј® б«®ў}
end
else i:=i+1; {ЏҐаҐе®¤ Є б«Ґ¤гойҐг бЁў®«г T[i]}
end.
‚® ®ЈЁе б«гзпе ЇаЁ Ёбб«Ґ¤®ўЁЁ ⥪бв ў®§ЁЄҐв §¤з ®ЇаҐ¤Ґ«ҐЁп ЈаЁж б«®ў. Ѓ®«ҐҐ в®Ј®, §збвго 㤮Ў® ЇҐаҐЇЁбвм ®¤® Ё«Ё ¤ў ўл¤Ґ«Ґле б«®ў Ё§ ббЁў бЁў®«®ў ў бва®Є®ўлҐ ЇҐаҐҐлҐ, зв®Ўл Ї®в® «ҐЈЄ® ўлЇ®«п«Ёбм ®ЇҐажЁЁ бࢥЁп б ®Ўа§ж® Ё«Ё ¤агЈ б ¤агЈ®.
ЋЎаЎ®вЄ б«®ў ў ⥪бвҐ. „ ⥪бв T, ৥йҐл© ў ббЁўҐ бЁў®«®ў. ‘®бвўЁвм «Ј®аЁв, Ї®§ў®«пойЁ© ўлЇ®«пвм Ёбб«Ґ¤®ўЁҐ Є¦¤®Ј® ®в¤Ґ«м®Ј® б«®ў.
Џ®иЈ®ўп а§аЎ®вЄ
з«млҐ §зҐЁп;
while Ґ Є®зЁ«бп ⥪бв do begin
Їа®ЇгбвЁвм ৤Ґ«ЁвҐ«Ё;
Їа®©вЁ Ї® Ґ ৤Ґ«ЁвҐ«п;
б«®ў® – ў бва®Єг;
®ЎаЎ®вЄ б«®ў
end;
з«млҐ §зҐЁп
i:=1; {®Ґа бЁў®« ў ⥪бвҐ}
Ґ Є®зЁ«бп ⥪бв
i<=n
Їа®ЇгбвЁвм ৤Ґ«ЁвҐ«Ё
while(i<=n)and
((T[i]=’ ’)or(T[i]=’.’)or(T[i]=’,’)) do
i:=i+1;
–ЁЄ« §Є®зЁвбп «ЁЎ® Ї®в®г, зв® §Є®зЁ«бп ⥪бв, «ЁЎ® Ї®в®г, зв® i- Ґб⥠ўбваҐвЁ«бм ЎгЄў. ќв® з«® б«®ў.
nach:=i;
Їа®©вЁ Ї® Ґ ৤Ґ«ЁвҐ«п
while(i<=n)and
(T[i]<>’ ’)and(T[i]<>’.’)and(T[i]<>’,’) do
i:=i+1;
–ЁЄ« §Є®зЁвбп «ЁЎ® Ї®в®г, зв® §Є®зЁ«бп ⥪бв, «ЁЎ® Ї®в®г, зв® i- Ґб⥠ўбваҐвЁ«бп ৤Ґ«ЁвҐ«м. Љ®Ґж б«®ў ЇҐаҐ¤ Ё.
kon:=i-1;
б«®ў® – ў бва®Єг
stroka:=’’;
for k:=nach to kon do
stroka:=stroka+T[k];
‚®§®¦Ґ Ё ¤агЈ®© ўаЁв ЇҐаҐЇЁблўЁп.
stroka:=’’;
for k:= kon downto nach do
stroka:=T[k]+stroka;
Љ®«ЁзҐбвў® ৤Ґ«ЁвҐ«Ґ© ®¦® 㢥«ЁзЁвм.
’а㤮ҐЄ®бвм «Ј®аЁвўл¤Ґ«ҐЁп ўбҐе б«®ў ў ⥪б⥠– «ЁҐ©п, вЄ ЄЄ аЎ®в ўбҐе жЁЄ«®ў гЇаў«пҐвбп Ґ¤Ёб⢥®© ЇҐаҐҐ®© i, Ё§Ґпо饩бп ®в 1 ¤® ¤«Ёл ⥪бв. ќв ЇҐаҐҐп ЇаЁ Є¦¤® ўлЇ®«ҐЁЁ «оЎ®Ј® ўгв॥Ј® жЁЄ« 㢥«ЁзЁўҐвбп 1.
‡¤зЁ ¤«п б®бв®п⥫쮣® аҐиҐЁп
5.1. ЋЇаҐ¤Ґ«Ёвм ®¦Ґбвў® ЎгЄў §¤®Ј® ⥪бв Ё Ї®бва®Ёвм вЎ«Ёжг збв®в ўбваҐзҐ®бвЁ нвЁе ЎгЄў.
5.2. „ ⥪бв, §ЇЁбл© ў ббЁўҐ бЁў®«®ў. Љ¦¤лҐ ¤ў б®бҐ¤Ёе б«®ў ў ⥪б⥠৤Ґ«Ґл «ЁЎ® ®¤Ё Їа®ЎҐ«®, «ЁЎ® ®¤Ё ৤Ґ«ЁвҐ«Ґ (§Їпв®©, в®зЄ®© Ё«Ё ¤агЈЁ §Є® ЇаҐЇЁЁп) Ё Їа®ЎҐ«®. ‚ᥠ®Є®зЁп б«®ў ў ⥪бвҐ, б®ўЇ¤ойЁҐ б «®Ґ», §ҐЁвм «ҐҐ», ®Є®зЁп «ЁҐ» §ҐЁвм «Ё©».
5.3. „ ⥪бв ў ўЁ¤Ґ ббЁў бЁў®«®ў. ’ҐЄбв ᮤҐа¦Ёв б«®ў, ৤Ґ«ҐлҐ Їа®ЎҐ«Ё, в®зЄЁ Ё §ЇпвлЁ, ЇаЁзҐ ৤Ґ«ЁвҐ«мле бЁў®«®ў Ґ¦¤г ¤ўгп б«®ўЁ ®¦Ґв Ўлвм Ў®«ҐҐ ®¤®Ј®. ‚ў®¤Ёвбп б«®ў®-®Ўp§Ґж. ’ॡгҐвбп ®ЇаҐ¤Ґ«Ёвм, бЄ®«мЄ® а§ ®Ўа§Ґж ўбваҐзҐвбп ў ⥪бвҐ.
5.4. * ‡¤ ⥪бв ў ўЁ¤Ґ ббЁў бЁў®«®ў, ᮤҐа¦йЁ© б«®ў, ৤Ґ«ҐлҐ Їа®ЎҐ«Ё, Ё ®в¤Ґ«м®Ґ б«®ў® Ё§ ЎгЄў. “¤«Ёвм нв® б«®ў® Ё§ ⥪бв Ё б¦вм ®бвўиЁ©бп ⥪бв. …б«Ё б«®ў® ўбваҐзҐвбп ў ⥪б⥠ҐбЄ®«мЄ® а§, ⮠㤫Ёвм в®«мЄ® ЇҐаў®Ґ ®в з«.
5.5. „ ⥪бв, §ЇЁбл© ў ббЁўҐ бЁў®«®ў. Љ¦¤лҐ ¤ў б®бҐ¤Ёе б«®ў ў ⥪б⥠৤Ґ«Ґл «ЁЎ® ®¤Ё Їа®ЎҐ«®, «ЁЎ® ®¤Ё ৤Ґ«ЁвҐ«Ґ (§Їпв®©, в®зЄ®© Ё«Ё ¤агЈЁ §Є® ЇаҐЇЁЁп) Ё Їа®ЎҐ«®. „ ®Ўа§Ґж – б«®ў® Ё§ q бЁў®«®ў. Ќ©вЁ Ё ўлўҐбвЁ ўбҐ б«®ў ў ⥪бвҐ, г Є®в®але з«млҐ q бЁў®«®ў б®ўЇ¤ов б ®Ўа§ж®.
5.6. ‡¤ ббЁў Ё§ n бЁў®«мле бва®Є. ‚ Є¦¤®© бва®ЄҐ §ЇЁб® б«®ў® агббЄ® п§лЄҐ (ўбҐ б«®ў а§лҐ). Ќ©вЁ ўбҐ вЄЁҐ ЈагЇЇл Ё§ зҐвлаҐе б«®ў, ў Є®в®але Ї®б«Ґ¤пп ЎгЄў ЇҐаў®Ј® б«®ў б®ўЇ¤Ґв б ЇҐаў®© ЎгЄў®© ўв®а®Ј® б«®ў, Ї®б«Ґ¤пп ЎгЄў ўв®а®Ј® б«®ў б®ўЇ¤Ґв б ЇҐаў®© ЎгЄў®© ваҐв쥣® б«®ў Ё в.¤. ‘«®ў, ®Ўа§гойЁҐ ЈагЇЇг, ®Јгв ўлЎЁавмбп Ё§ ббЁў ў Їа®Ё§ў®«м® Ї®ап¤ЄҐ.
5.7. * „ ббЁў бЁў®«®ў ¤«Ё®© n, ᮤҐа¦йЁ© ⥪бв Ё§ б«®ў, ৤Ґ«Ґле Їа®ЎҐ«Ё Ё §ЄЁ ЇаҐЇЁЁп, ЇаЁзҐ Ї®б«Ґ «оЎ®Ј® ৤Ґ«ЁвҐ«п ®Ўп§вҐ«м® абЇ®«ЈҐвбп ®¤Ё Ё«Ё ҐбЄ®«мЄ® Їа®ЎҐ«®ў. „«Ё ⥪бв ®¦Ґв Ўлвм ҐмиҐ n. ‚ў®¤Ёвбп ¤ў б«®ў: ЇҐаў®Ґ – б«®ў®-®Ўа§Ґж, ўв®а®Ґ – б«®ў®-§Ґ. Ќ©вЁ ўҐ§¤Ґ ў ⥪б⥠᫮ў®-®Ўа§Ґж Ё §ҐЁвм б«®ў®-§Ґг.
‘«®ў®-§Ґ ®¦Ґв Ўлвм ЄЄ Є®а®зҐ, вЄ Ё ¤«ЁҐҐ б«®ў-®Ўа§ж. …б«Ё ⥪бв Ї®б«Ґ нв®Ј® ®Є¦Ґвбп ¤«ЁҐҐ n бЁў®«®ў, в® §Ґг ў®®ЎйҐ Ґ ¤Ґ«вм.
5.8. * ‡¤ ббЁў A Ё§ n бЁў®«®ў Ё ваЁ бЁў®«млҐ бва®ЄЁ (S1 ¤«Ё®© m1, S2 ¤«Ё®© m2 Ё S3 ¤«Ё®© m3). ‚ ⥪б⥠®влбЄвм ᮥ «Ґў®Ґ абЇ®«®¦ҐЁҐ бва®ЄЁ S1, §вҐ – бва®ЄЁ S2, §вҐ – бва®ЄЁ S3, бзЁвп, зв® бва®ЄЁ ў ⥪б⥠Ґ «Јовбп ¤агЈ ¤агЈ.
‡ҐЁвм ў ⥪б⥠бва®Єг S1 S2, S2 S3, 3 S1, ЇҐаҐ¤ўЁгў, ЇаЁ Ґ®Ўе®¤Ё®бвЁ, бЁў®«л Ґ¦¤г ЁЁ. ЏаЁ нв® §ЇаҐйҐвбп ЁбЇ®«м§®ўвм ¤®Ї®«ЁвҐ«мл© ббЁў.
5.9. * ‡¤ ⥪бв агббЄ® п§лЄҐ ў ўЁ¤Ґ ®¤®Ґа®Ј® ббЁў бЁў®«®ў T. (‘«®ў ў ⥪б⥠৤Ґ«Ґл Їа®ЎҐ«Ё Ё/Ё«Ё §ЇпвлЁ, в®зЄЁ). ‡¤ ббЁў бва®Є E Ё§ ў®§®¦ле ®Є®зЁ© б«®ў. ‡¤л ¤ўҐ бва®ЄЁ S1, S2 (Є®аЁ б«®ў).
’ॡгҐвбп бд®аЁа®ўвм ⥪бв Q, ®в«ЁзойЁ©бп ®в ⥪бв T вҐ, зв® ў б«®ўе ўбҐ Є®аЁ S1 §ҐҐл Є®аЁ S2. (‘«®ў® = ЇаЁбвўЄ + Є®аҐм + E[i], ЇаЁбвўЄЁ ®¦Ґв Ґ Ўлвм.)
ЏаҐ¤Ї®«ЈҐвбп, зв® ўбҐ ЎгЄўл ў ®¤® ॣЁбвॠЁ зв® ¤«Ёл ббЁў Q ¤®бвв®з® ¤«п а§ҐйҐЁп ЇҐаҐЇЁб®Ј® ⥪бв.
5.10. * ‡¤ ⥪бв агббЄ® п§лЄҐ ў ўЁ¤Ґ ®¤®Ґа®Ј® ббЁў бЁў®«®ў T. (‘«®ў ў ⥪б⥠৤Ґ«Ґл Їа®ЎҐ«Ё Ё/Ё«Ё §ЇпвлЁ, в®зЄЁ). ‡¤ ббЁў бва®Є E Ё§ ў®§®¦ле ®Є®зЁ© б«®ў Ё ббЁў R Ё§ ў®§®¦ле Є®аҐ© б«®ў.
’ॡгҐвбп бд®аЁа®ўвм ббЁў бва®Є P ў®§®¦ле ЇаЁбвў®Є. (‘«®ў® = P[i] + R[j] + E[k], ЇаЁбвўЄЁ ®¦Ґв Ґ Ўлвм.) ЏаҐ¤Ї®«ЈҐвбп, зв® ўбҐ ЎгЄўл ў ®¤® ॣЁбваҐ.
6. €Ќ”ЋђЊЂ–€ЋЌЌ›… ЊЂ‘‘€‚›
‚бв㯨⥫млҐ нЄ§Ґл. Џ®бвгЇп Ў®«®Єўвл© дЄг«мвҐв ‚бовЁбЄ®Ј® гЁўҐабЁвҐв, ЎЁвгаЁҐв ¤®«¦Ґ б¤вм ¤ў нЄ§Ґ: Ї® б®«®ҐваЁЁ Ё Ї® Є®зЄ®в®аЁЁ. ќЄ§Ґл ЇаЁЁҐв ЈагЇЇ нЄ§Ґв®а®ў Ї® б«Ґ¤гойЁ ЇаўЁ«:
1) ЎЁвгаЁҐв ®¦Ґв ўлЎавм «оЎ®Ј® нЄ§Ґв®а Ё б¤вм Ґг ®¤Ё Ё§ нЄ§Ґ®ў;
2) १г«мввл б¤зЁ Є¦¤л© нЄ§Ґв®а §ЇЁб뢥⠢ бў®¤го вЎ«Ёжг:
”Ё«Ёп ЎЁвгаЁҐв | ЏаҐ¤Ґв | ЋжҐЄ |
3) ЎЁвгаЁҐв ¤®«¦Ґ б¤вм ¤ў а§ле нЄ§Ґ в®«мЄ® Ї® ®¤®г а§г.
ЌЇЁбвм Їа®Јаг, Є®в®ап ўў®¤Ёв нвг вЎ«Ёжг, гЇ®а冷稢Ґв ЎЁвгаЁҐв®ў Ї® гЎлўЁо бгл Ў««®ў Ё ўлў®¤Ёв Ёе дЁ«ЁЁ Ё бгл Ў««®ў. ЏаЁ нв® Їа®Ја Ґ ¤®«¦ ўлў®¤Ёвм дЁ«ЁЁ ЎЁвгаЁҐв®ў, агиЁўиЁе ЇгЄв 3 Ё«Ё Ї®«гзЁўиЁе ®жҐЄг 2 «оЎ® Ё§ нЄ§Ґ®ў.
€¤Ґп «Ј®аЁв. „«п в®Ј® зв®Ўл г§вм, бЄ®«мЄ® а§ б¤ў« нЄ§Ґл Є¦¤л© Ё§ ЎЁвгаЁҐв®ў, 㤮Ў® гЇ®а冷зЁвм вЎ«Ёжг Ї® дЁ«Ёп. Џ®б«Ґ нв®Ј® ЈагЇЇл бва®Є б ®¤ЁЄ®ўлЁ дЁ«ЁпЁ Ўг¤гв абЇ®«Јвмбп Ї®¤ап¤, Ё ¤«п Ёе ўл¤Ґ«ҐЁп ¤®бвв®з® Їа®Ё§ўҐбвЁ Ї®б«Ґ¤®ўвҐ«мл© Їа®б®ва бва®Є вЎ«Ёжл. „«п Є¦¤®© ЈагЇЇл ®¤ЁЄ®ўле дЁ«Ё© 㦮 ўлЇ®«Ёвм б«Ґ¤гойЁҐ Їа®ўҐаЄЁ:
1) б¤л ¤ў а§ле нЄ§Ґ;
2) Ї®«гзҐл ®жҐЄЁ Ў®«миҐ 2.
‡вҐ ®¦® Ї®¤бзЁввм Ё б®еаЁвм бгалҐ Ў««л ЎЁвгаЁҐв®ў, Їа®иҐ¤иЁе Їа®ўҐаЄг. ‚ §ўҐа襨Ґ Ї®«гзҐп вЎ«Ёж Ё§ дЁ«Ё© Ё бгале Ў««®ў гЇ®а冷稢Ґвбп Ї® Ў««.
–Ґ«Ґб®®Ўа§® ЁбЇ®«м§®ўвм Є®бўҐго гЇ®а冷祮бвм Ї® дЁ«Ёп ¤«п Ёб室®© вЎ«Ёжл. „«п в®Ј®, зв®Ўл Ґ д®аЁа®ўвм ®ўго вЎ«Ёжг Ё§ дЁ«Ё© Ё бгале Ў««®ў, ®¦® ®аЈЁ§®ўвм ¤ў ббЁў. Ћ¤Ё – ¤«п бгале Ў««®ў, ¤агЈ®© – ¤«п ®Ґа®ў бва®Є Ёб室®© вЎ«Ёжл, ᮤҐа¦йЁе дЁ«ЁЁ ЎЁвгаЁҐв®ў, Ї®«гзЁўиЁе ᮮ⢥вбвўгойЁҐ бгалҐ Ў««л.
const NM=1000;
var fam : array [1..NM] of string[20];
predm : array [1..NM] of string[20];
ball : array [1..NM] of integer;
rez : array [1..NM div 2] of integer;
{®Ґа §ЇЁбҐ© ўе®¤®© вЎ«Ёжл б дЁ«ЁпЁ гбЇҐўойЁе}
sum_bl : array [1..NM div 2] of integer;
{бг Ў««®ў}
nb : array [1..NM div 2] of integer;
s : array [1..NM] of integer;
n, {Є®«ЁзҐбвў® §ЇЁбҐ© ў® ўе®¤®© вЎ«ЁжҐ}
k, {Є®«ЁзҐбвў® ЎЁвгаЁҐв®ў, ¤®ЇгйҐле Є Є®Єгабг}
i, j, nach, kon, wr : integer;
begin {ўў®¤ Ёб室ле ¤ле}
{Є®бўҐ®Ґ гЇ®а冷票Ґ Ї® дЁ«Ёп:}
for i:=1 to n do s[i]:=i;
for i:=1 to n-1 do
for j:=1 to n-i do
if fam[s[j]] > fam[s[j+1]] then
begin wr:=s[j]; s[j]:=s[j+1]; s[j+1]:=wr; end;
nach:=1; k:=0;
while nach < n do
begin i:=nach;
{ўл¤Ґ«ҐЁҐ ЈагЇЇ ®¤ЁЄ®ўле дЁ«Ё©:}
while (i<=n-1) and (fam[s[i]]=fam[s[i+1]]) do
i:=i+1;
kon:=i;
if (kon-nach+1=2) and
(predm[s[nach]]<>predm[s[kon]]) and
((ball[s[nach]]>=3) and (ball[s[kon]]>=3)) then
begin k:=k+1;
rez[k]:=s[nach];
sum_bl[k]:=ball[s[nach]]+ball[s[kon]];
end;
nach:=kon+1;
end;
{Є®бўҐ®Ґ гЇ®а冷票Ґ Ї® б㥠Ў««®ў:}
for i:=1 to k do nb[i]:=i;
for i:=1 to k-1 do
for j:=1 to k-i do
if sum_bl[nb[j]] < sum_bl[nb[j+1]] then
begin
wr:=nb[j]; nb[j]:=nb[j+1]; nb[j+1]:=wr
end;
writeln('ўҐ¤®®бвм гбЇҐўойЁе');
for i:=1 to k do
writeln(fam[rez[nb[i]]]:25, sum_bl[nb[i]]:3)
end.
‚뤥«ҐЁҐ ЈагЇЇ ®¤ЁЄ®ўле дЁ«Ё© Їа®Ё§ў®¤Ёвбп Їг⥠бࢥЁп ў жЁЄ«Ґ дЁ«Ё© Ё§ ¤ўге б®бҐ¤Ёе бва®Є вЎ«Ёжл. ’Є ЄЄ ў®§ўав®ў §¤ Ґв, в® ®Ўйп ва㤮ҐЄ®бвм нв®Ј® ¤Ґ©бвўЁп – «ЁҐ©п. Џ®нв®г ЄбЁ«мл© Ї®а冷Є ва㤮ҐЄ®бвЁ ўбҐЈ® «Ј®аЁв ®ЇаҐ¤Ґ«пҐвбп ва㤮ҐЄ®бвмо б®авЁа®ў®Є. ‚ ЇаЁҐаҐ ЇаЁўҐ¤Ґ Їа®б⥩訩 «Ј®аЁв б ва㤮ҐЄ®бвмо Ї®ап¤Є n 2. ЏаЁ ЁбЇ®«м§®ўЁЁ Ў®«ҐҐ нд䥪⨢®Ј® «Ј®аЁв б®авЁа®ўЄЁ ®¦®
¤®ЎЁвмбп ва㤮ҐЄ®бвЁ Ї®ап¤Є n log 2 n.