Cod sursa(job #309733)

Utilizator marta_diannaFII Filimon Marta Diana marta_dianna Data 30 aprilie 2009 23:52:26
Problema Cifra Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 2.29 kb
program p1;
var f,g:text;
    a:array[0..100] of integer;
    i,c,t,z,nx,x1,x2:integer;
    x:string;
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
              readln(f,x);
              nx:=length(x);
              x1:=ord(x[nx])-ord('0');
              if nx-1>0 then x2:=ord(x[nx-1])-ord('0');
              z:=x2*10+x1;
              writeln(g,a[z]);
         end;
     close(f);
     close(g);
end.