状态: Unaccepted
测评机: Xeond[6]
得分: 90分
提交日期: 2010-9-20 10:41:00
有效耗时: 5453毫秒
测试结果1: 通过本测试点|有效耗时312ms
测试结果2: 通过本测试点|有效耗时375ms
测试结果3: 通过本测试点|有效耗时532ms
测试结果4: 通过本测试点|有效耗时625ms
测试结果5: 通过本测试点|有效耗时421ms
测试结果6: 通过本测试点|有效耗时657ms
测试结果7: 通过本测试点|有效耗时968ms
测试结果8: 通过本测试点|有效耗时547ms
测试结果9: 选手程序运行超过时限
测试结果10: 通过本测试点|有效耗时1016ms
const symbol:array[1..16] of longint=(1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768);
var
a:array[1..901] of longint;
i,j,k,l,m,n,s1,s2,c,min,tmp:longint;
str1,str2,c1:string;
function max(x,y:longint):longint;
begin
if x>y then exit(x);
exit(y);
end;
procedure change71(x:longint);
var
i,j,k,l:longint;
m:string;
begin
k:=x mod 7;
str(k,m);
str1:=m+str1;
x:=x div 7;
if x<>0 then change71(x);
end;
procedure change72(x:longint);
var
i,j,k,l:longint;
m:string;
begin
k:=x mod 7;
str(k,m);
str2:=m+str2;
x:=x div 7;
if x<>0 then change72(x);
end;
procedure rtn(x,y:longint);
var
s1,s2:string;
i,j,k,l,m:longint;
begin
str(x,s1);
str(y,s2);
if length(s1)<>length(s2) then
if length(s1)<length(s2) then
begin
for i:=length(s2) downto length(s1)+1 do
s1[i]:='0';
end
else
begin
for i:=length(s1) downto length(s2)+1 do
s2[i]:='0';
end;
for i:=1 to max(length(s1),length(s2)) do
begin
if s1[i]=s2[i] then c1:=c1+'0'
else
c1:=c1+'1';
end;
end;
procedure change10(s:string);
var
i,j,k,l,m:longint;
begin
for i:=1 to length(s) do
begin
val(s[i],k);
c:=c+k*symbol[i];
end;
end;
begin
min:=maxint;
readln(n);
for i:=1 to n do
read(a[i]);
for i:=1 to n-1 do
begin
for j:=i+1 to n do
begin
c:=0;
str1:='';
str2:='';
c1:='';
change71(a[i]);
change72(a[j]);
val(str1,k);
val(str2,l);
rtn(k,l);
change10(c1);
end;
tmp:=abs(c-123);
if tmp<=min then min:=tmp;
end;
writeln(123-min);
end.