В первой строке входного файла input.txt вводится число n. В следующих строках находятся числа построчно - результаты каждого спортсмена в трех заплывах.
Формат выходных данных
Выводится три числа - лучшие результаты в каждом заплыве
Пример
Пример входного файла input.txt | Пример выходного файла output.txt |
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.
Олимпиадные задачи
Задача «Красивая последовательность»
Имя входного файла: 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 |
Идея решения: Это поисковая задача. Закономерность можно увидеть во время нахождения элементов последовательности для 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.
Задача
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.
Задача
Дано натуральное число N (N<=999). Записать это число русскими словами (семнадцать, двести пятьдесят три).
|
|
Ввод:
1 строка – N - число
Вывод:
число словами
Пример:
Input.txt | Output.txt |
двадцать пять |
Указание: найдем количество сотен (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.