Отримання знань

дистанційна підтримка освіти школярів


Тут ви можете виконати завдання чи задати питання по змiсту цього уроку.

Михальов Володимир (StarRover) 2014-08-22 15:07:07
Задача Virus
--------------------------
{virus}
const
max=255;
type
st=string[max];
mst=array[1..max] of st;
var
a,b:mst;
rez:array[1..max] of longint;
r,an,bn,l,k:longint;
s:st;
Procedure ReadSt(str:st;var mas:mst;var kol:longint);
var
ch:char;
pstr:st;
f,i,j,n:longint;
begin
n:=Length(str);
pstr:='';
f:=0;
j:=0;
for i:=1 to n do begin
ch:=str[i];
if (f=1)and(ch<>' ')
then pstr:=pstr+ch
else if (f=0)and(ch<>' ') then begin
f:=1;
pstr:=pstr+ch;
end
else if (f=1)and(ch=' ') then begin
f:=0;
j:=j+1;
mas[j]:=pstr;
pstr:='';
end
end;
if pstr<>'' then begin
j:=j+1;
mas[j]:=pstr;
end;
kol:=j;
end;
begin
ReadLn(s);
ReadSt(s,a,an);
ReadLn(s);
ReadSt(s,b,bn);
if (an=0)or(an<>bn)
then writeLn('0')
else begin
for k:=1 to max do rez[k]:=0;

for l:=1 to an do
for k:=1 to an do
if (a[k]=b[l])and(rez[l]=0)
then begin
rez[l]:=k;
a[k]:='';
end;
r:=0;
for k:=1 to max do
if rez[k]>0 then r:=r+1;
if r=an
then begin
l:=0;
for k:=1 to max do
if rez[k]>0 then begin
l:=l+1;
if l<>an
then Write(rez[k],' ')
else WriteLn(rez[k]);
end;
end
else WriteLn('0');
end;
end.

Повернутися до уроку

Повернутися до перелiку уроків курсу

В системі: гості - (1); користувачі - (0)