|
|
back to boardPlease give me some test Posted by Harmy 2 Jun 2004 14:50 Help!I use binary search to find the answer. Please give me some test! Thanks {my wrong mode here} const maxn=1000; maxm=1000000; var a1,n:longint; ta1:real; a:array[1..maxn]of extended; procedure init; begin { assign(input,'1066.in'); reset(input);} readln(n,ta1); a1:=round(ta1*maxm); a[1]:=a1; end; procedure search(first,last:longint); var cha1,cha2:real; h,h1,h2:longint; function solve(x:longint):boolean; var te,i,j:longint; begin i:=2; a[2]:=x; solve:=true; repeat inc(i); a[i]:=2*(a[i-1]+maxm)-a[i-2]; if a[i]<0 then begin solve:=false; exit; end; until a[i]>a[i-1]; dec(I); if first=last then begin for j:=i+1 to n do a[j]:=2*(a[j-1]+maxm)-a[j-2]; writeln((a[n]/maxm):0:2); halt; end; end; begin h:=(first+last) div 2; if solve(h) then search(first,h) else search(h+1,last); end; begin init; search(0,a1); end. |
|
|