Please note, this is a STATIC archive of website www.tutorialspoint.com from 11 May 2019, cach3.com does not collect or store any user information, there is no "phishing" involved.
Tutorialspoint

Compile and Execute Pascal Online

Program skroty(output);

{type skr=string[5];}

var
    pl:ansistring;
    wr,d,licz,i,l,il:longint;
    w1:array[0..25] of longint;
    w2:array[0..675] of longint;
    w3:array[0..17575] of longint;
    w4:array[0..456975] of longint;
    {skrs: array[1..100000] of skr;}
    s1,s2,s3,s4,ass:string;
    z1,z2,z3,z4,ac:char;
    
function oblicz1(var sk1:string):integer;
var a1s:char;
begin
a1s:=sk1[1];
oblicz1:=ord(a1s)-65;
end;

Function oblicz2(var sk2:string):integer;
var a1s, a2s:char;
wart:integer;
begin
a1s:=sk2[1];
a2s:=sk2[2];
wart:=(ord(a1s)-65)+26*(ord(a2s)-65);
oblicz2:=wart;
end;

Function oblicz3(var sk3:string):integer;
var a1s, a2s, a3s:char;
wart:integer;
begin
a1s:=sk3[1];
a2s:=sk3[2];
a3s:=sk3[3];
wart:=(ord(a1s)-65)+26*(ord(a2s)-65)+26*26*(ord(a3s)-65);
oblicz3:=wart;
end;

Function oblicz4(var sk4:string):longint;
var a1s, a2s, a3s, a4s:char;
wart:longint;
begin
a1s:=sk4[1];
a2s:=sk4[2];
a3s:=sk4[3];
a4s:=sk4[4];
wart:=(ord(a1s)-65)+26*(ord(a2s)-65)+26*26*(ord(a3s)-65)+26*26*26*(ord(a4s)-65);
oblicz4:=wart;
end;
{**************************** GŁÓWNY **********************************}
begin
  for i:=0 to 25 do w1[i]:=0;
  for i:=0 to 675 do w2[i]:=0;
  for i:=0 to 17575 do w3[i]:=0;
  for i:=0 to 456975 do w4[i]:=0;
  readln(pl);
  readln(il);
  d:=length(pl);
  pl:=pl+'@@@';
  for i:= 1 to d do
    begin
    z1:=pl[i];z2:=pl[i+1];z3:=pl[i+2];z4:=pl[i+3];
    s1:=z1;s2:=z1+z2;s3:=z1+z2+z3;s4:=z1+z2+z3+z4;
    wr:=oblicz1(s1); w1[wr]:=w1[wr]+1;
    wr:=oblicz2(s2); if wr>=0 then w2[wr]:=w2[wr]+1;
    wr:=oblicz3(s3); if wr>=0 then w3[wr]:=w3[wr]+1;
    wr:=oblicz4(s4); if wr>=0 then w4[wr]:=w4[wr]+1;
    end;
  for i:=1 to il do begin
    licz:=0;
    readln(ass);
    l:=length(ass);
    case l of
        1: begin
            licz:=oblicz1(ass);
            writeln(w1[licz]);
            end;
        2: begin
            licz:=oblicz2(ass);
            writeln(w2[licz]);
            end;
        3: begin
            licz:=oblicz3(ass);
            writeln(w3[licz]);
            end;
        4: begin
            licz:=oblicz4(ass);
            writeln(w4[licz]);
            end;
    end;
    {writeln(licz);}
    end;
    end.





Advertisements
Loading...

We use cookies to provide and improve our services. By using our site, you consent to our Cookies Policy.