Cod sursa(job #325684)

Utilizator UraganNetedu Andrei Uragan Data 21 iunie 2009 22:20:33
Problema Cifra Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 2.24 kb
var f,g:text;
    a:array[0..100] of integer;
    i,c,t,x1,x2,x3,p,q,lg,nn:integer;
    n:string[100];
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
                           1: a[i]:=(a[i-1]+9) mod 10;
                           0: 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,n);
         p:=0;
         lg:=length(n);
         q:=ord(n[lg])-ord('0');
         if lg>1 then p:=ord(n[lg-1])-ord('0');
         nn:=p*10+q;
         writeln(g,a[nn]);
         end;
close(g);
end.