Готовимся к олимпиаде

Вариант1

1.Условие:
Тройка чисел (T1,M1,C1) задает стартовое время, а тройка (T2,M2,C2) - финишное время участника лыжной гонки 30 км (часы, минуты, секунды). Проверить корректность данных и найти результат участника.
2.Условие:
На конференцию приехало N человек. Для их перевоза выделили автомобили вместимостью K и M человек (без водителя). К гостинице автомобили подаются в таком порядке: сначала вместимостью K человек, потом - M человек, после этого опять - K человек, потом M человек и так далее. В автомобиле можно перевозить не более максимально допустимого количества пассажиров. Определить, сколько необходимо автомобилей для перевозки всех делегатов конференции.

Технические условия:
Программа должна читать исходные данные из файла input.txt, первая строка которого содержит количество делегатов, а вторая и третья - числа K и M. В файл output.txt должно выводиться количество машин, необходимых для перевозки всех делегатов.
Примеры входного и выходного файлов:
Input.txt
Output.txt
20
3
4
6
12
2
2
6
25
5
5
5
100
2
1
67
3.Условие:
Хлестакова приглашали управлять департаментом. В первый день ему прислали 1000 курьеров, а в каждый следующий - в 2 раза больше, чем в предыдущий. Хлестаков согласился, когда прислали 30000 курьеров. На какой день это произошло?
(Учесть, что Хлестаков слаб в умножении и делении).
4.Условие:
Магическим называется квадрат, в котором сумма чисел по всем горизонталям, вертикалям и диагоналям совпадает. Найти все магические квадраты 3х3 составленые из девяти цифр (1..9).
Пример:
2
7
6
9
5
1
4
3
8
5.Условие:Циферблат механических часов имеет 12 часовых делений и 60 минутных. Вычислить угол между часовой и минутной стрелками часов, показывающих заданное время. Стрелки всегда показывают точно на деления циферблата, часовая стрелка передвигается на следующее деление через каждые 12 минут.
Технические условия:
Файл "input.txt" содержит время суток в виде hh:mm, где hh - часы, mm - минуты. Он не содерджит пробелов и пустых строк, часты и минуты задаются двумя десятичными знаками. Вывести в файл "output.txt" величину наименьшего угла между стрелками часов в градусах.
Примеры файлов:
Input.txtOutput.txt
10:0590
6.Условие:
Рассмотрим шахматное поле n x n, на котором размещены n ферзей. Расположение ферзей называется допустимым, если они не атакуют друг друга. Написать программу построения всех полных допустимых расположений N ферзей, где 4<=N>=20.
Технические условия:
В файле "input.txt" содержиться единственное число - n из интервала [4..20]. Программа должна выводить в файл "output.txt" для каждого допустимого расположения ферзей ряд из n натуральных чисел, где порядковый номер каждого числа указывает на номер вертикали, а значение - на номер горизонтали в шахматном поле.
Примеры файлов:

Input.txt
Output.txt
4
2 4 1 3
3 1 4 2
5
1 3 5 2 4
1 4 2 5 3
2 4 1 3 5
2 5 3 1 4
3 1 4 2 5
3 5 2 4 1
4 1 3 5 2
4 2 5 3 1
5 2 4 1 3
5 3 1 4 2

Вариант 2

1.Условие:
Тройка чисел (T1,M1,C1) задает стартовое время, а тройка (T2,M2,C2) - финишное время участника лыжной гонки 30 км (часы, минуты, секунды). Проверить корректность данных и найти результат участника.
Решение:
var
  a,b,x,y,t1,m1,c1,t2,m2,c2 : integer;
begin
write('Старт...'); { ввод данных }
readln(t1,m1,c1);
write('Финиш...');
readln(t2,m2,c2);
if (t1<0) or (t2<0) or (m1<0) or (m2<0) or {проверяем корректность: }
(c1<0) or (c2<0) or (t1>23) or (t2>23) or {часы от 0 до 23,мин,сек- }
(m1>59) or (m2>59) or (c1>59) or (c2>59) { от 0 до 59 }
then writeln('Некорректные данные')

else begin
  x:=(c2-c1) div 60;

  y:=(c2-c1) mod 60; {секунды}
  a:=((m2-m1) mod 60) + x; {минуты}

  x:=(m2-m1) div 60;
  b:=((t2-t1) mod 60) + x; {часы}
  if y<0
  then begin
   y:=y+60;
   a:=a-1;
  end;
  if a<0
  then begin
   a:=a+60;
   b:=b-1;
  end;
  if b<0
  then b:=b+24;

  writeln('Результат ',b,' ч. ',a,' мин. ',y,' сек.');
end;
end.

2.Условие:
На конференцию приехало N человек. Для их перевоза выделили автомобили вместимостью K и M человек (без водителя). К гостинице автомобили подаются в таком порядке: сначала вместимостью K человек, потом - M человек, после этого опять - K человек, потом M человек и так далее. В автомобиле можно перевозить не более максимально допустимого количества пассажиров. Определить, сколько необходимо автомобилей для перевозки всех делегатов конференции.

Технические условия:
Программа должна читать исходные данные из файла input.txt, первая строка которого содержит количество делегатов, а вторая и третья - числа K и M. В файл output.txt должно выводиться количество машин, необходимых для перевозки всех делегатов.

Примеры входного и выходного файлов:
Input.txt
Output.txt
20
3
4
6
12
2
2
6
25
5
5
5
100
2
1
67
Решение:
Идея решения. До тех пор, пока число делегатов не будет равно нулю (пока всех не увезут), отнимаем от числа N число K, затем число M, и так далее..
var
n,k,m:integer;i:integer;f:text;
begin
assign(f,'input.txt');
reset(f);
read(f,n);
read(f,k);
read(f,m);
close(f);
i:=0;
while N>0 do begin
i:=i+1;
if i mod 2<>0 then n:=n-k else N:=N-M;end;
assign(f,'output.txt');
rewrite(f);
writeln(F,i);
close(f);
end.

Комментариев нет:

Отправить комментарий