Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.06;
Скачать: CL | DM;

Вниз

Прогрессия   Найти похожие ветки 

 
Chuha   (2004-01-25 16:56) [0]

Вопрос такой: Дана сумма арифметисекой прогрессии, разность прогрессии равна 1, нужно определить, из сколько членов можно получить такую прогрессию, с такой суммой и найти 1ый элемент.
Вот ссылка этой задачи http://acm.timus.ru/problem.aspx?space=1&num=1120
Вот мое решени, происходит TimeLimit на 8 тесте, как ускорить процесс?
{1120}
var i,n,k,t:longint;
begin
readln(n);
for i:=1 to n do
begin
for k:=1 to n do
begin
if n=(i*k+(i+(k-1))*k )div 2 then
begin
Write(i," ",k);
Halt;
end;
end;
end;
end.

За ранее спасибо


 
jack128 ©   (2004-01-25 17:27) [1]

попробуй так
for P := n downto 1 do
if ((N-p*p+p) mod (2*p)) = 0 then
begin
WriteLn("P = ", p);
WriteLn("A = ", (N-p*p+p) div (2*p));
end;


 
jack128 ©   (2004-01-25 17:38) [2]

Сорри, баги :-)
program Project2;
{$APPTYPE CONSOLE}
uses SysUtils;
var
a, p, n: integer;
begin
Readln(n);
for P := n downto 1 do
begin
if ((2*N-p*p+p) mod (2*p)) = 0 then
begin
a := (2*N-p*p+p) div (2*p);
if a <= 0 then Continue;
WriteLn("P = ", p);
WriteLn("A = ", a);
Break;
end;
end;
ReadLn;
end.


 
MBo ©   (2004-01-25 17:41) [3]

>jack128
Начинать можно не с N, а примерно с Sqrt(2N)


 
Chuha   (2004-01-25 18:16) [4]

Большоеее спасибо :)


 
jack128 ©   (2004-01-25 18:39) [5]

Вобщем вот уще уточнение(вывод из подсказак MBo, если я правильные выводы сделал, конечно ;-))
iMax := Round((sqrt(1+4*N) + 1)/2);
for P := iMax downto 1 do ...

При больших N - это не имеет значения, а вот при маленьких возможно..


 
jack128 ©   (2004-01-25 18:41) [6]

как всегда баги iMax := Round((sqrt(1+8*N) + 1)/2);



Страницы: 1 вся ветка

Текущий архив: 2004.02.06;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.03 c
14-16627
iNew
2004-01-14 11:53
2004.02.06
Нормы расхода спирта


4-16810
GrandleBugenShpreh
2003-11-25 17:48
2004.02.06
WM_GETTEXT


1-16298
Grinder
2004-01-24 13:43
2004.02.06
Форма как hint


3-16152
AGN
2004-01-14 13:28
2004.02.06
БД + File


6-16545
Simon
2003-12-02 20:16
2004.02.06
Как перехватить сетевой трафик?