Cod sursa(job #2819312)

Utilizator nolokDragomir Andrei Theodor Paul nolok Data 18 decembrie 2021 11:12:28
Problema Potrivirea sirurilor Scor 22
Compilator fpc Status done
Runda Arhiva educationala Marime 0.89 kb
PROGRAM StrMatch;
{$Mode ObjFpc}{$H+}

TYPE
  Ty = Byte;

VAR
  Fin, Fout: TextFile;
  Sa, Sb: AnsiString;
  Cnt: PtrUInt;
  I, J, K: PtrUInt;
  ArPos: Array Of PtrUInt;
  ArPosHi: PtrUInt;

PROCEDURE Task;
begin
  Cnt := 0;
  J := 0;
  repeat
    I := Pos(Sa, Sb);
    if I <> 0 then begin
      Cnt += 1;
      ArPosHi += 1;
      ArPos[ArPosHi] := I + J - 1;
      Delete(Sb, 1, I + J);
      J += I;
    end;
  until I = 0;

  Writeln(Fout, Cnt);

  if ArPosHi > 0 then begin
    Write(Fout, ArPos[1]);
    for I := 2 to ArPosHi do begin
      Write(Fout, ' ', ArPos[i]);
    end;
  end else
    Exit;
end;

BEGIN
  AssignFile(Fin, 'strmatch.in');
  AssignFile(Fout, 'strmatch.out');
  Reset(Fin);
  Rewrite(Fout);

  Readln(Fin, Sa);
  Readln(Fin, Sb);
  //Writeln(Sa);
  //Writeln(Sb);
  SetLength(ArPos, Length(Sb) + 1); // SlowAlloc?
  ArPosHi := 0;
  Task;

  CloseFile(Fin);
  CloseFile(Fout);
END.