Cod sursa(job #253816)

Utilizator nod_softwareBudisteanu Ionut Alexandru nod_software Data 6 februarie 2009 12:39:25
Problema Episoade Scor 50
Compilator fpc Status done
Runda Stelele Informaticii 2009, clasele 9-10, ziua 1 Marime 2.05 kb
program episoade;

type rec = record
   x:array [1..1000] of char;
   n:integer;
end;
var fin,fout:text;
    s:array [0..1000] of char;
    v:array [0..100] of byte;
    nr:array [1..100] of byte;
    ok:boolean;
    a,q,p,sn,i,j,m,n:integer;
    semn:char;
{*----------------------------------------------------*}
Procedure determina_paranteze;
begin
   for i:=1 to sn do
   begin

   end;
end;
{*----------------------------------------------------*}
Procedure Citire;
begin
    Assign(fin,'episoade.in'); Reset(fin);
    assign(fout,'episoade.out'); Rewrite(fout);
    i:=0;
    while not eoln(fin) do
    begin
       inc(i);
       read(fin,s[i]);
    end; sn:=i;
    Readln(fin);
    //Determina_paranteze;

end;
{*----------------------------------------------------*}
Function Determina_numar(var i:integer):integer;
var S2:String[5];
    nr:integer;
begin
    S2:='';
    while (s[i] <> '>') and (s[i]<>'#') and (I<length(s)) do
    begin
       s2:=s2+s[i];
       inc(i);
    end;
    Val(S2,nr,p);
    Determina_numar:=Nr;
end;
{*----------------------------------------------------*}
Procedure solve;
begin
   ok:=True;
   i:=0; semn:='$';
   while i<sn do
   begin
      inc(i);
      a:=Determina_numar(i);
      semn:=s[i]; v[0]:=0;
      If semn = '>' then
      begin
         v[0]:=1;
         v[1]:=a;
      end;
      while semn = '>' do
      begin
         inc(v[0]);
         inc(i);
         v[v[0]]:=Determina_numar(i);
         semn:=s[i];
      end;
      if v[0] > 0 then//caut sa fie exact
      begin
         for j:=1 to n do if nr[j] = v[1] then break;
         for p:=j to j+v[0]-1 do
            if nr[p] <> v[p-j+1] then ok:=false;
      end;
   end;
   If ok then writeln(fout,'1')
   Else Writeln(Fout,'0');
end;
{*----------------------------------------------------*}
begin
    citire;
    readln(fin,m,n);

    for q:=1 to m do
    begin
       for j:=1 to n do read(fin,nr[j]);
       Readln(fin);
       solve;
    end;
    Close(fin);
    Close(fout);
end.