讨论 / 第九个点......求优化程序
lxl 2010-09-19 19:47:00
点我顶贴 收藏 删除
恐怖的92行......

状态: 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.

#1 lxl@2010-09-19 19:47:00
回复 删除
接上

!@#$%大牛帮我......

查看更多回复
提交回复