⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 p2408.pas

📁 高手写的所有acm例程 在acm.zju.edu.cn 上的题目的例程
💻 PAS
字号:
PROGRAM p2408;

type
        Ta      = array[0..14] of Extended;
        Tnum    = array[1..13] of Integer;

VAR
        n , step                : Integer;
        a , s                   : Ta;
        num                     : Tnum;
        goal                    : Extended;

procedure init;
var
        i                       : Integer;
begin
for i := 1 to n + 1 do read ( num [i] , s [i] );

fillchar ( a , sizeof ( a ) , 0 );
for i := 1 to n do
        begin
        a [( num [n + 1] - num [i] + 12 ) mod 12 + 1] := s [i];
        end;
goal := s [n + 1];
end;

function f ( x : Extended ) : Extended;
var
        i                       : Integer;
        s , t                   : Extended;
begin
t := 1;
s := 0;
for i := 0 to 12 do
        begin
        s := s + a [i] * t;
        t := t * x;
        end;
f := s;
end;

function search ( left , right : Extended ): Extended;
var
        mid , t                 : Extended;
begin
//writeln ( left : 8 : 3 , ' ' , right : 8 : 4 );
mid := ( left + right ) / 2;
t := f ( mid );
if abs ( right - left ) < 1e-10 then
        begin
        search := mid - 1;
        exit;
        end;

if ( t < goal ) then search := search ( mid , right )
        else search := search ( left , mid );
end;


BEGIN
read ( n );
step := 0;
while ( n > 0 ) do
        begin
        inc ( Step );
        init;
        writeln ( 'Case ' , step , ': ' , search ( 1 , 2 ) : 0 : 5);
        readln ( n );
        if n > 0 then writeln;
        end;
END.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -