Cod sursa(job #33229)

Utilizator silviu982001Borsan Silviu silviu982001 Data 19 martie 2007 00:03:41
Problema Cifra Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 8.84 kb
program cifra;
const cifre:array[1..3840] of byte=(
1,5,2,8,3,9,2,8,7,7,8,4,7,3,8,4,1,5,4,4,5,9,6,2,7,3,6,2,7,7,8,8,9,5,0,6,3,1,6,6,7,7,0,6,1,1,4,2,7,7,8,8,7,3,2,2,3,1,
0,0,1,1,6,6,5,5,2,4,3,3,4,8,3,3,6,6,3,5,4,4,5,9,4,4,9,3,0,6,9,9,0,4,7,7,6,6,3,9,0,0,1,5,8,8,7,7,4,0,9,9,0,4,7,7,6,6,3,9,2,2,3,7
,0,0,5,5,2,2,5,5,6,4,7,1,0,2,9,9,2,2,3,1,4,8,3,1,4,4,3,3,4,2,5,9,6,8,5,5,4,4,5,9,2,6,7,5,2,2,1,1,2,0,7,1,6,8,5,5,0,0,1,9,0,4,9,
1,8,8,5,5,6,6,9,9,4,6,3,1,4,4,5,5,2,2,7,9,0,8,7,7,8,8,9,3,8,4,1,9,8,8,9,9,4,4,9,5,4,4,3,3,4,4,7,7,2,8,1,1,6,6,7,7,2,2,7,3,6,6,5
,5,6,6,9,9,4,4,5,9,6,2,7,3,6,2,1,1,2,8,1,7,2,8,5,9,8,8,9,3,0,6,1,7,0,6,1,1,2,2,5,1,6,2,5,3,8,8,9,9,8,4,9,9,0,8,3,3,4,4,5,1,0,0,
7,5,4,4,5,5,0,0,3,3,6,8,7,7,8,2,7,7,2,2,9,1,0,0,1,5,0,0,9,7,4,0,1,1,2,6,9,9,6,6,3,9,8,8,9,3,6,6,3,3,0,6,9,9,0,4,7,7,6,6,3,9,0,0
,1,5,8,8,3,3,0,0,1,1,2,0,3,7,6,8,5,5,6,6,7,5,8,2,5,3,6,6,5,5,6,4,7,1,2,4,1,1,0,0,1,5,8,2,7,5,2,2,1,1,2,0,7,1,8,0,7,7,4,4,5,3,6,
0,5,7,4,4,7,7,8,8,5,5,0,2,9,7,2,2,3,3,4,4,9,1,8,6,5,5,6,6,9,7,2,8,7,5,4,4,5,5,0,0,5,1,0,0,9,9,0,0,3,3,8,4,3,3,8,8,9,9,4,4,9,5,
4,4,3,3,4,4,7,7,2,2,3,7,4,0,5,1,4,0,9,9,0,6,9,5,0,6,3,7,6,6,7,1,8,4,9,5,8,4,9,9,0,0,9,5,0,6,7,5,0,0,1,1,2,8,3,3,0,8,3,3,4,4,7,3
,2,2,5,3,2,2,3,3,8,8,3,3,4,6,5,5,6,0,5,5,4,4,1,3,2,2,3,7,2,2,5,1,8,4,3,3,4,8,1,1,4,4,1,7,0,0,1,5,8,8,1,1,8,4,5,5,6,0,3,3,2,2,9,
5,4,4,5,9,2,2,7,7,4,4,3,3,4,2,5,9,8,0,7,7,6,6,7,5,8,2,1,9,2,2,1,1,2,0,3,7,2,4,1,1,0,0,1,5,8,2,9,7,4,4,3,3,4,2,9,3,4,6,3,3,2,2,3
,1,8,2,7,9,6,6,1,1,2,2,3,3,8,0,7,5,2,2,3,3,6,6,1,3,2,0,9,9,0,0,7,3,8,4,5,3,2,2,3,3,8,8,3,9,8,8,7,7,8,8,1,1,6,2,7,7,2,2,3,3,8,8,
3,9,4,4,3,3,4,4,7,7,2,2,3,7,4,0,5,1,4,0,9,9,0,6,9,5,0,6,3,7,6,6,7,1,8,4,9,5,8,4,9,9,0,0,1,7,2,8,5,3,8,8,9,9,2,8,3,3,6,4,9,9,0,0
,9,5,4,4,5,3,2,2,3,3,8,8,7,7,4,6,5,5,6,0,5,5,8,8,5,7,6,6,7,1,6,6,1,5,2,8,1,1,2,6,9,9,8,8,5,1,2,2,3,7,0,0,9,9,6,2,1,1,2,6,9,9,8,
8,5,1,8,8,9,3,6,6,1,1,8,8,5,5,6,4,7,1,0,2,9,9,6,6,7,5,8,2,7,5,8,8,7,7,8,6,9,3,0,2,9,9,8,8,9,3,6,0,1,9,6,6,5,5,6,4,1,5,0,2,9,9,4
,4,5,3,4,8,3,5,2,2,9,9,0,0,3,3,8,0,7,5,8,8,9,9,6,6,1,3,4,2,1,1,2,2,3,7,2,8,5,3,2,2,3,3,8,8,3,9,8,8,7,7,8,8,1,1,6,2,
3,3,8,8,9,9,4,4,9,5,6,6,5,5,6,6,9,9,4,4,5,9,6,2,7,3,6,2,1,1,2,8,1,7,2,8,5,9,8,8,9,3,0,6,1,7,0,6,1,1,2,2,5,1,6,2,5,3,8,8,9,9,8,4
,9,9,0,8,3,3,4,4,5,1,0,0,7,5,4,4,5,5,0,0,3,3,6,8,7,7,8,2,7,7,2,2,9,1,0,0,1,5,0,0,9,7,4,0,1,1,2,6,9,9,6,6,3,9,8,8,9,3,6,6,3,3,0,
6,9,9,0,4,7,7,6,6,3,9,4,4,5,9,2,2,7,7,4,4,9,9,0,8,1,5,4,6,3,3,8,8,9,7,0,4,7,5,8,8,7,7,8,6,9,3,4,6,3,3,2,2,3,7,0,4,9,7,4,4,3,3,4
,2,9,3,0,2,9,9,6,6,7,5,8,2,7,9,6,6,9,9,0,0,7,7,2,4,1,9,4,4,5,5,6,6,1,3,0,8,7,7,8,8,1,9,4,0,9,7,6,6,7,7,2,2,7,3,2,2,1,1,2,2,5,5,
0,6,3,3,8,8,9,9,4,4,9,5,2,2,1,1,2,2,5,5,0,0,1,5,2,8,3,9,2,8,7,7,8,4,7,3,8,4,1,5,4,4,5,9,6,2,7,3,6,2,7,7,8,8,7,3,8,4,5,3,8,8,9,9
,0,6,1,1,8,6,1,1,2,2,5,1,0,0,3,1,0,0,1,1,6,6,1,1,2,4,3,3,4,8,3,3,2,2,9,1,0,0,1,5,0,0,3,9,6,2,1,1,2,6,9,9,2,2,9,5,8,8,9,3,6,6,9,
9,6,2,3,3,4,8,1,1,0,0,7,3,6,6,7,1,4,4,9,9,6,6,9,9,0,8,1,5,4,6,3,3,6,6,7,5,8,2,1,9,2,2,1,1,2,0,3,7,2,4,1,1,0,0,1,5,8,2,9,7,4,4,3
,3,4,2,9,3,4,6,3,3,2,2,3,1,8,2,7,9,6,6,1,1,2,2,3,3,8,0,7,5,2,2,3,3,6,6,1,3,2,0,9,9,0,0,7,3,8,4,5,3,2,2,3,3,8,8,3,9,
8,8,7,7,8,8,1,1,6,2,5,5,0,0,1,1,6,6,1,7,0,0,9,9,0,0,3,3,8,8,9,3,0,6,1,7,0,6,5,5,6,2,5,1,6,2,9,3,2,2,3,7,4,0,5,1,4,0,5,5,6,6,7,3
,8,4,1,9,4,4,5,5,8,4,9,9,2,0,5,5,6,6,5,1,0,0,1,9,8,8,9,9,4,4,3,3,0,2,1,1,2,6,1,1,4,4,1,3,2,2,3,7,2,2,7,1,8,4,7,7,8,2,5,5,4,4,1,
7,8,8,9,3,6,6,5,5,2,8,7,7,8,2,5,5,4,4,1,7,8,8,9,3,6,6,1,1,8,8,9,9,0,8,1,5,4,6,3,3,4,4,5,3,6,0,5,3,6,6,5,5,6,4,7,1,8,0,7,7,6,6,7
,1,4,8,9,7,4,4,3,3,4,2,9,3,8,0,7,7,2,2,3,1,2,6,1,3,0,0,7,7,8,8,1,1,6,8,5,3,6,6,7,7,4,4,9,1,2,0,9,9,0,0,1,5,0,6,3,1,0,0,1,1,6,6,
1,7,6,6,5,5,6,6,9,9,4,0,9,9,4,4,5,5,0,0,5,1,0,0,9,9,0,0,3,3,8,8,9,3,0,6,1,7,0,6,5,5,6,2,5,1,6,2,9,3,2,2,3,7,4,0,5,1,4,0,5,5,6,6
,9,5,0,6,9,7,2,2,3,3,2,8,3,3,4,2,7,7,8,8,9,5,4,4,1,9,8,8,9,9,4,4,7,7,0,2,1,1,2,6,1,1,6,6,3,5,4,4,5,9,4,4,3,1,8,4,5,5,6,0,3,3,0,
0,7,3,2,2,3,7,0,0,7,7,4,0,3,3,4,8,1,1,0,0,7,3,2,2,3,7,0,0,5,5,2,2,1,1,2,0,3,7,6,8,5,5,4,4,5,3,6,0,3,1,4,4,3,3,4,2,5,9,0,2,9,9,8
,8,9,3,6,0,5,3,0,0,9,9,0,8,5,9,6,8,5,5,2,2,3,1,4,8,3,5,2,2,5,5,6,6,3,3,8,0,7,5,0,0,1,1,2,2,7,9,6,4,3,3,4,4,7,5,0,6,
5,3,2,2,3,3,8,8,3,9,8,8,7,7,8,8,1,1,6,2,7,7,2,2,3,3,8,8,3,9,4,4,3,3,4,4,7,7,2,2,3,7,4,0,5,1,4,0,9,9,0,6,9,5,0,6,3,7,6,6,7,1,8,4
,9,5,8,4,9,9,0,0,9,5,0,6,7,5,0,0,1,1,2,8,3,3,0,8,3,3,4,4,7,3,2,2,5,3,2,2,3,3,8,8,3,3,4,6,5,5,6,0,5,5,4,4,1,3,2,2,3,7,2,2,5,1,8,
4,3,3,4,8,1,1,4,4,1,7,0,0,1,5,8,8,1,1,8,4,5,5,6,0,3,3,2,2,9,5,2,2,3,7,0,0,5,5,2,2,9,9,0,8,1,5,4,6,3,3,0,0,1,9,2,6,5,3,6,6,5,5,6
,4,7,1,6,8,5,5,4,4,5,9,2,6,3,1,8,8,7,7,8,6,3,7,8,0,7,7,6,6,7,5,2,6,1,3,0,0,5,5,6,6,7,7,2,4,1,9,6,6,7,7,0,0,5,7,6,4,3,3,4,4,1,7,
2,8,9,7,6,6,7,7,2,2,7,3,2,2,1,1,2,2,5,5,0,6,7,7,2,2,3,3,8,8,3,9,0,0,9,9,0,0,3,3,8,8,9,3,0,6,1,7,0,6,5,5,6,2,5,1,6,2,9,3,2,2,3,7
,4,0,5,1,4,0,5,5,6,6,7,3,8,4,1,9,4,4,5,5,8,4,9,9,2,0,5,5,6,6,5,1,0,0,1,9,8,8,9,9,4,4,3,3,0,2,1,1,2,6,1,1,4,4,1,3,2,2,3,7,2,2,7,
1,8,4,7,7,8,2,5,5,4,4,1,7,8,8,9,3,6,6,5,5,2,8,7,7,8,2,5,5,4,4,1,7,2,2,3,7,0,0,5,5,2,2,7,7,8,6,9,3,2,4,1,1,6,6,7,5,8,2,7,5,8,8,7
,7,8,6,9,3,0,2,9,9,8,8,9,3,6,0,1,9,6,6,5,5,6,4,1,5,0,2,9,9,4,4,5,3,4,8,3,5,2,2,9,9,0,0,3,3,8,0,7,5,8,8,9,9,6,6,1,3,
4,2,1,1,2,2,3,7,2,8,5,3,2,2,3,3,8,8,3,9,8,8,7,7,8,8,1,1,6,2,9,9,4,4,5,5,0,0,5,1,8,8,7,7,8,8,1,1,6,6,7,1,8,4,9,5,8,4,3,3,4,0,3,9
,4,0,7,1,0,0,1,5,2,8,3,9,2,8,3,3,4,4,7,3,8,4,7,5,0,0,1,1,0,6,1,1,2,0,5,5,6,6,7,3,2,2,9,7,6,6,7,7,2,2,5,5,8,0,9,9,0,4,9,9,4,4,1,
3,2,2,3,7,2,2,1,9,6,2,3,3,4,8,1,1,8,8,5,1,0,0,1,5,8,8,5,5,2,8,1,1,2,6,9,9,8,8,5,1,4,4,5,9,2,2,7,7,4,4,7,7,8,6,9,3,2,4,1,1,4,4,5
,3,6,0,3,1,4,4,3,3,4,2,5,9,0,2,9,9,8,8,9,3,6,0,5,3,0,0,9,9,0,8,5,9,6,8,5,5,2,2,3,1,4,8,3,5,2,2,5,5,6,6,3,3,8,0,7,5,0,0,1,1,2,2,
7,9,6,4,3,3,4,4,7,5,0,6,5,3,2,2,3,3,8,8,3,9,8,8,7,7,8,8,1,1,6,2,5,5,0,0,1,1,6,6,1,7,0,0,9,9,0,0,3,3,8,8,9,3,0,6,1,7,0,6,5,5,6,2
,5,1,6,2,9,3,2,2,3,7,4,0,5,1,4,0,5,5,6,6,5,1,6,2,3,1,6,6,7,7,8,4,9,9,6,4,9,9,0,0,3,9,8,8,1,9,8,8,9,9,4,4,9,9,0,2,1,1,2,6,1,1,0,
0,7,9,8,8,9,3,8,8,1,7,4,0,9,9,0,4,7,7,0,0,7,3,6,6,7,1,4,4,7,7,4,0,1,1,2,6,9,9,8,8,5,1,2,2,3,7,0,0,5,5,2,2,3,3,4,2,5,9,8,0,7,7,8
,8,9,7,0,4,3,1,4,4,3,3,4,2,5,9,4,6,3,3,2,2,3,7,0,4,1,9,6,6,5,5,6,4,1,5,6,8,5,5,4,4,5,3,0,4,9,1,8,8,3,3,4,4,5,5,0,2,
9,7,4,4,5,5,8,8,3,5,4,2,1,1,2,2,9,5,0,6,7,5,4,4,5,5,0,0,5,1,0,0,9,9,0,0,3,3,8,4,3,3,8,8,9,9,4,4,9,5,4,4,3,3,4,4,7,7,2,2,3,7,4,0
,5,1,4,0,9,9,0,6,9,5,0,6,3,7,6,6,7,1,8,4,9,5,8,4,9,9,0,0,1,7,2,8,5,3,8,8,9,9,2,8,3,3,6,4,9,9,0,0,9,5,4,4,5,3,2,2,3,3,8,8,7,7,4,
6,5,5,6,0,5,5,8,8,5,7,6,6,7,1,6,6,1,5,2,8,1,1,2,6,9,9,8,8,5,1,2,2,3,7,0,0,9,9,6,2,1,1,2,6,9,9,8,8,5,1,0,0,1,5,8,8,3,3,0,0,9,9,0
,8,1,5,4,6,3,3,2,2,3,1,4,8,3,1,4,4,3,3,4,2,5,9,6,8,5,5,4,4,5,9,2,6,7,5,2,2,1,1,2,0,7,1,6,8,5,5,0,0,1,9,0,4,9,1,8,8,5,5,6,6,9,9,
4,6,3,1,4,4,5,5,2,2,7,9,0,8,7,7,8,8,9,3,8,4,1,9,8,8,9,9,4,4,9,5,4,4,3,3,4,4,7,7,2,8,3,3,8,8,9,9,4,4,9,5,0,0,9,9,0,0,3,3,8,8,9,3
,0,6,1,7,0,6,5,5,6,2,5,1,6,2,9,3,2,2,3,7,4,0,5,1,4,0,5,5,6,6,9,5,0,6,9,7,2,2,3,3,2,8,3,3,4,2,7,7,8,8,9,5,4,4,1,9,8,8,9,9,4,4,7,
7,0,2,1,1,2,6,1,1,6,6,3,5,4,4,5,9,4,4,3,1,8,4,5,5,6,0,3,3,0,0,7,3,2,2,3,7,0,0,7,7,4,0,3,3,4,8,1,1,0,0,7,3,0,0,1,5,8,8,3,3,0,0,7
,7,8,6,9,3,2,4,1,1,8,8,9,7,0,4,7,5,8,8,7,7,8,6,9,3,4,6,3,3,2,2,3,7,0,4,9,7,4,4,3,3,4,2,9,3,0,2,9,9,6,6,7,5,8,2,7,9,
6,6,9,9,0,0,7,7,2,4,1,9,4,4,5,5,6,6,1,3,0,8,7,7,8,8,1,9,4,0,9,7,6,6,7,7,2,2,7,3,2,2,1,1,2,2,5,5,0,6,7,7,2,2,3,3,8,8,3,9,0,0,9,9
,0,0,3,3,8,8,9,3,0,6,1,7,0,6,5,5,6,2,5,1,6,2,9,3,2,2,3,7,4,0,5,1,4,0,5,5,6,6,5,1,6,2,3,1,6,6,7,7,8,4,9,9,6,4,9,9,0,0,3,9,8,8,1,
9,8,8,9,9,4,4,9,9,0,2,1,1,2,6,1,1,0,0,7,9,8,8,9,3,8,8,1,7,4,0,9,9,0,4,7,7,0,0,7,3,6,6,7,1,4,4,7,7,4,0,1,1,2,6,9,9,8,8,5,1,6,6,7
,1,4,4,9,9,6,6,1,1,2,0,3,7,6,8,5,5,0,0,1,9,2,6,5,3,6,6,5,5,6,4,7,1,6,8,5,5,4,4,5,9,2,6,3,1,8,8,7,7,8,6,3,7,8,0,7,7,6,6,7,5,2,6,
1,3,0,0,5,5,6,6,7,7,2,4,1,9,6,6,7,7,0,0,5,7,6,4,3,3,4,4,1,7,2,8,9,7,6,6,7,7,2,2,7,3,2,2,1,1,2,2,5,5,0,6,3,3,8,8,9,9,4,4,9,5,2,2
,1,1,2,2,5,5,0,0);

var f,g:text;
    i,k:longint;
    er:integer;
    n,s,temp:string;
    n1:longint;


procedure imparte(s1:string;x:integer;var s2:string);
var s3:string;
    i,l,z,r,poz:longint;
    er:integer;
begin
str(x,s3);
s2:='';poz:=1;
repeat
      i:=0;
           repeat
             inc(i);
             temp:=copy(s1,1,i);
             val(temp,l,er);
             until (l>=x)or(l=0);
             z:=l div x;
             r:=l mod x;
             if l=0 then r:=0;
             str(z,temp);
             insert(temp,s2,poz);
             inc(poz);
             delete(s1,1,i);
             if r<>0 then
               begin
                 str(r,temp);
                 insert(temp,s1,1);
               end;
until (s1='')or(length(s1)<length(s3))or((length(s1)=length(s3))and(s1<s3));
end;



begin
assign(f,'cifra.in');reset(f);
readln(f,k);
assign(g,'cifra.out');rewrite(g);
for i:=1 to k do
 begin
  readln(f,n);
  if length(n)<=9 then
   begin
   val(n,n1,er);
   writeln(g,cifre[n1 mod 3840]);
   end
  else
   begin
    imparte(n,3840,s);
    val(temp,n1,er);
    writeln(g,cifre[n1]);
   end;
 end;
close(f);close(g);
end.