Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2009, 18:07   #1
semennn
Пользователь
 
Регистрация: 28.03.2009
Сообщений: 28
По умолчанию Погоня

Арагорн, Леголас и Гимли преследовали отряд Урук-Хайцев, подосланных Саруманом. Друзья уже преодолели K лиг (K < 20). На i-м участке пути длиной в 1 лигу (1 ≤ i ≤ K) средняя скорость бега составляла Vi лиг в час. Vi < Vj при i > j. Гимли заметил, что с начала погони прошло M/N часов и пора бы уже догнать этих Урук-Хайцев. Найдите K, если известно, что все Vi — целые.
Исходные данные
В первой строке даны взаимно простые числа M и N (1 ≤ M, N ≤ 50; M/N ≤ 3).
Результат
В первой строке выведите число K, во второй строке — числа Vi (1 ≤ i ≤ K) через пробел. Учтите, что никто в Средиземье не может перемещаться со скоростью больше, чем 100000 лиг в час. Если существует множество решений, выведите любое. Если решения нет, выведите −1.
semennn вне форума Ответить с цитированием
Старый 13.05.2009, 20:27   #2
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Цитата:
Арагорн, Леголас и Гимли преследовали отряд Урук-Хайцев, подосланных Саруманом
Это где ж такие задания начали выдавать..? о_0
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 13.05.2009, 22:36   #3
semennn
Пользователь
 
Регистрация: 28.03.2009
Сообщений: 28
По умолчанию

есть еще добрые преподаватели))
semennn вне форума Ответить с цитированием
Старый 13.05.2009, 22:44   #4
Juffin
Форумчянин
Форумчанин
 
Аватар для Juffin
 
Регистрация: 05.04.2009
Сообщений: 446
По умолчанию

Цитата:
Учтите, что никто в Средиземье не может перемещаться со скоростью больше, чем 100000 лиг в час.
нда, жестоко...
Nobody expects Spanish Inquisition!
Juffin вне форума Ответить с цитированием
Старый 13.05.2009, 22:45   #5
semennn
Пользователь
 
Регистрация: 28.03.2009
Сообщений: 28
По умолчанию

вот наработка
var
n,m,i,u:integer;
a:array[0..10000]of integer;

procedure Sort(L,R:Longint);
var
j,x,buf:longint;
begin
i:=L; j:=R; X:=a[(i+j)shr 1];
repeat
while a[i]<X do inc(i);
while a[j]>X do dec(j);
if i<=j then begin
buf:=a[i]; a[i]:=a[j]; a[j]:=buf;
inc(i); dec(j);
end;
until i>j;
if i<R then Sort(i,R);
if j>L then Sort(L,j);
end;

begin
readln(n,m);
u:=1;
if (n=1)or(n=m) then begin
writeln('1');
write(m);
end
else begin
while m<=100000 do
begin
if n=2 then begin
n:=n*2;
m:=m*2;
end;
a[u]:=m;
if m mod (n-1) <>0 then
begin
dec(n);
n:=n*2;
m:=m*2;
end
else begin
a[0]:=m div (n-1);
break;
end;
inc(u);
end;
if m>100000
then write('-1')
else begin
sort(0,u);
writeln(u+1);
for i:=u downto 0 do
if i=0 then write(a[i])
else write(a[i],' ');
end;
end;
readln;
readln;
end.
semennn вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц