Cod sursa(job #309724)

Utilizator marta_diannaFII Filimon Marta Diana marta_dianna Data 30 aprilie 2009 23:39:20
Problema Cifra Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 2.55 kb
program p1;
var f,g:text;
    a:array[0..100] of integer;
    i,c,t,z:integer;
    x1,x2,x3:char;
begin
     assign(f,'cifra.in');reset(f);
     assign(g,'cifra.out');rewrite(g);
     for i:=1 to 100 do
         begin
              c:=i mod 10;
              case c of
                   0: a[i]:=a[i-1];
                   1: a[i]:=(a[i-1]+1) mod 10;
                   5: a[i]:=(a[i-1]+5) mod 10;
                   6: a[i]:=(a[i-1]+6) mod 10;
                   4: case i mod 2 of
                           0: a[i]:=(a[i-1]+6) mod 10;
                           1: a[i]:=(a[i-1]+4) mod 10;
                      end;
                   9: case i mod 2 of
                           0: a[i]:=(a[i-1]+9) mod 10;
                           1: a[i]:=(a[i-1]+1) mod 10;
                      end;
                   2: case i mod 4 of
                           0: a[i]:=(a[i-1]+6) mod 10;
                           1: a[i]:=(a[i-1]+2) mod 10;
                           2: a[i]:=(a[i-1]+4) mod 10;
                           3: a[i]:=(a[i-1]+8) mod 10;
                      end;
                   3: case i mod 4 of
                           0: a[i]:=(a[i-1]+1) mod 10;
                           1: a[i]:=(a[i-1]+3) mod 10;
                           2: a[i]:=(a[i-1]+9) mod 10;
                           3: a[i]:=(a[i-1]+7) mod 10;
                      end;
                   7: case i mod 4 of
                           0: a[i]:=(a[i-1]+1) mod 10;
                           1: a[i]:=(a[i-1]+7) mod 10;
                           2: a[i]:=(a[i-1]+9) mod 10;
                           3: a[i]:=(a[i-1]+3) mod 10;
                      end;
                   8: case i mod 4 of
                           0: a[i]:=(a[i-1]+6) mod 10;
                           1: a[i]:=(a[i-1]+8) mod 10;
                           2: a[i]:=(a[i-1]+4) mod 10;
                           3: a[i]:=(a[i-1]+2) mod 10;
                      end;
              end;
         end;
     readln(f,t);
     for i:=1 to t do
         begin
              read(f,x2);
              while not eoln(f) do
                    begin
                         x1:=x2;
                         read(f,x2);
                    end;
              if x1 in ['0'..'9'] then
              begin
              z:=(ord(x1)-ord('0'))*10+(ord(x2)-ord('0'));
              writeln(g,a[z]);
              end
              else writeln(g,a[ord(x2)-ord('0')]);
              readln(f);
              x1:=x3;
              x2:=x3;
         end;
     close(f);
     close(g);
end.