Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Банк олимпиадных заданий.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
374.86 Кб
Скачать

Задача 4 «Соревнования»

Задание. В соревнованиях по плаванию принимают участие n спортсменов. Соревнования состоят из трёх заплывов. Составить программу, определяющую лучший результат в каждом заплыве.

Формат входных данных

В первой строке входного файла input.txt вводится число n. В следующих строках находятся числа построчно - результаты каждого спортсмена в трех заплывах.

Формат выходных данных

Выводится три числа - лучшие результаты в каждом заплыве

Пример

Пример входного файла input.txt

Пример выходного файла output.txt

3

5.2 5.6 4.8

4.9 5.1 5.3

5.1 5.5 4.7

4.90  5.10  4.70

Код программы

program z1;

type mas=array[1..100,1..3] of real;

var i,j,n : byte;

b:array[1..3] of real; a:mas;

Procedure zap;

Begin

assign(input,'input.txt');

reset(input);

readln(n);

for i := 1 to n do

for j := 1 to 3 do

read(a[i, j]);

close(input);

End;

procedure resh;

begin

for j:=1 to 3 do

begin

b[j]:=a[1,j];

for i:=1 to n do

if a[i,j]<b[j] then b[j]:=a[i,j];

end;

end;

procedure vyv;

begin

assign(output,'output.txt');

rewrite(output);

for i:=1 to 3 do

 write(b[i]:6:2);

 close(output);

end;

BEGIN

zap;

resh;

vyv;

END.

Олимпиадные задачи

  1. Задача «Красивая последовательность»

Имя входного файла: Input.txt.

Имя выходного файла: Output.txt.

Ограничение по времени: 1 секунда на каждый тест.

Красотой последовательности, что имеет N натуральных чисел, будем называть минимальное натуральное число М, которое нельзя представить в виде алгебраической суммы некоторых элементов последовательности. Например, красота последовательности 2, 3, 4 равна 8.

(1=-2+3, 2=-2+4, 3=3, 4=4, 5=2+3, 6=2+4, 7=4+3, 8=?)

Напишите программу, которая по данному числу N находит наилучшую последовательность из N чисел.

Формат входных данных: у входном файле находится число N (1≤N≤20).

Формат выходных данных: Выведите в выходной файл N чисел – элементы найденной последовательности, расположенной по возрастанию).

Пример:

Input.txt

Output.txt

2

1

3

Идея решения: Это поисковая задача. Закономерность можно увидеть во время нахождения элементов последовательности для N=3. Результатом поиска являются числа 1, 3, 9, то есть элементами последовательности являются числа – степени числа 3.

Решение

Program K;

Var

i, n: 1..20;

j: Longint;

Begin

Assign (input, ‘input.txt’);

Reset (input);

Readln (n);

Close (input);

Assign (output, ‘output.txt’);

Rewrite (output);

Writeln (1);

j:=1;

For i:=2 to n do

Begin

j:=j*3;

Writeln (j)

End;

Close (output)

End.

  1. Задача

DATES. Стрелки часов движутся с постоянными угловыми скоростями и показывают h часов m минут. Найти число полных минут до того времени, когда стрелки совпадут. Данные вводятся из файла input.txt. В файл output.txt выводится количество полных минут.

input.txt

output.txt

Пример 1 Пример 2

0 0 1 1

0 5

Решение на языке Паскаль: program OLIMP; var CHAS,MIN,i:integer; CHAS1,MIN1:real; f,f1:text;

begin assign (f,' input.txt '); rewrite(f); write(' vvedite vrema '); readln(CHAS,MIN); writeln(f,CHAS:3,MIN:3); close(f); i:=0; CHAS1:=CHAS*30; MIN1:=MIN*6; while CHAS1>MIN1 do begin CHAS1:=CHAS1+0.5; MIN1:=MIN1+6; i:=i+1; end; assign(f1, ' output.txt '); rewrite(f1); writeln(' proshlo ',i,' minyt '); writeln(f1,i); close(f1) end.

  1. Задача

Дано натуральное число N (N<=999). Записать это число русскими словами (семнадцать, двести пятьдесят три).

Ввод:

1 строка – N - число Вывод: 

число словами

Пример:

Input.txt

Output.txt

25

двадцать пять

Указание: найдем количество сотен (s), количество десятков (d)  и количество единиц (e), а также число. содержащее две последние цифры (p) в заданном числе N. 

Если p принадлежит промежутку 11..19, то нет необходимости выводить количество десятков и единиц и d=p, е=0.

Использовать команду case для сотен, десятков и единиц ( в команду выбора по десяткам добавить и числа от 11 до 19). 

В зависимости от значений s, d, e находим части строки, из которых затем легко можно составить все название числа.

program z4;

var n,s,d,e,p:integer;

ss,se,sd,ch:string[40];

BEGIN

assign(input,'input.txt'); reset(input);

readln(n);

close(input);

s:=n div 100;

e:=n mod 10;

d:=(n div 10) mod 10;

p:=n mod 100;

if (p<20) and (p>10) then begin d:=p; e:=0 end;

case s of

0: ss:='';

1:ss:='сто';

2:ss:='двести';

3:ss:='триста';

4:ss:= 'четыреста';

5:ss:='пятьсот';

6:ss:='шестьсот';

7:ss:='семьсот';

8:ss:='восемьсот';

9:ss:='девятьсот';

end;

case e of

0:se:='';

1:se:='один';

2:se:='два';

3:se:='три';

4:se:='четыре';

5:se:='пять';

6:se:='шесть';

7:se:='семь';

8:se:='восемь';

9:se:='девять';

end;

case d of

0:sd:='';

1:sd:='десять';

2:sd:='двадцать';

3:sd:='тридцать';

4:sd:='сорок';

5:sd:='пятьдесят';

6:sd:='шестьдесят';

7:sd:='семьдесят';

8:sd:='восемьдесят';

9:sd:='девяносто';

11:sd:='одиннадцать';

12:sd:='двенадцать';

13:sd:='тринадцать';

14:sd:='четырнадцать';

15:sd:='пятнадцать';

16:sd:='шестнадцать';

17:sd:='семнадцать';

18:sd:='восемнадцать';

19:sd:='девятнадцать';

end;

ch:=ss;

if (ch<>'') and (sd<>'') then ch:=ch+' '+sd

else ch:=ch+sd;

if (ch<>'') and (se<>'') then ch:=ch+' '+se

else ch:=ch+se;

assign(output,'output.txt'); rewrite(output);

writeln(ch);

close(output);

END.