Cod sursa(job #309020)

Utilizator netedu_andreiFII Andrei Netedu netedu_andrei Data 29 aprilie 2009 12:39:16
Problema Cifra Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 2.22 kb
program p1;
var f,g:text;
    a:array[0..100] of integer;
    i,c,t,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
         read(f,x);
         x1:=length(x);
         writeln(g,a[ ord(x[x1])-ord('0')*10   +ord(x[x1-1])-ord('0')   ]);
         readln(f);
         end;
     close(f);
     close(g);
end.