ІІ етап Всеукраїнської учнівської олімпіади з інформатики
для 8-11 класів у 2018році
З а в д а н н я
(Час виконання - 3 год)
Задача 1. Добуток (20 б.)
Напишіть програму
знаходження добутку n
перших членів послідовності (f+1)*(f+1+2)*…*(f+1+2+3+…+
n). Де n <100, |f|<10.
Задача
2. Ланцюжок (30 б.)
На новорічне свято дітлахи грали біля ялинки в гру
«Ланцюжок». На початку гри вони шикувалися в порядку зменшення зросту, а потім
з’являвся ще один гравець і повинен був дуже хутко знайти своє місце в ланцюжку,
причому, якщо він знаходив дітлахів свого зросту, то за умовами гри становився
за ними. Петрик зацікавився цією грою й вирішив написати програму для неї.
Допоможіть Петрику написати програму.
Вхідні
дані
У
першому рядку – натуральне число N (1≤N ≤30 – кількість дітлахів у ланцюжкі.
У
другому рядку – упорядкований за спаданням масив даних зі зростом дітлахів (цілі додатні
числа менші за 200).
У
наступному
рядку
– розміщений зріст гравця (ціле число менше за 200), якого
в ланцюжку не було на початку гри.
Вихідні
дані
У
першому рядку – номер гравця, який підійшов у ланцюжок.
У другому рядку – ланцюжок дітлахів разом з прибулим гравцем.
Приклад вхідних та вихідних даних.
Input10.txt
|
8
165 163 160 160 157 157 154 ошибка нет 1 числа
162
|
Output10.txt
|
3
165 163 162
160 160 157 157 154
|
Задача 3. Новорічна гірлянда (50 б.)
На Новий рік
Катрусі подарували різнокольорову гірлянду. Лампочки на ній розміщувалися
послідовно одна за одною, але відстані між ними були дуже різними: де короткі,
а де й дуже довгі. Коли Катруся вмикала гірлянду, то помітила, що ті лампочки,
які були
на шнурі найближче одна до одної, горіли яскравіше за
інші. Напишіть програму, яка б визначала найяскравіші лампочки й відстань між
ними.
Вхідні
дані (файл tochki.txt)
У
першому рядку – натуральне число N (2 ≤ N
≤ 100000)
– кількість лампочок.
У
другому рядку – масив з N різними координатами лампочок на шнурі
(числовій прямій). Координати – це цілі числа: │xi │< 109 .
Вихідні дані (mindlin.txt)
У вихідний файл записуємо в першому
рядку значення мінімальної відстані між двома точками (лампочками). У другому рядку — номери лівої та правої лампочок, яким
відповідає знайдена мінімальна відстань. Якщо таких лампочок кілька, то вивести
лампочки, розміщені лівіше за інших.
Приклад вводу й виводу даних
tochki.txt
|
5
10 3 6 2 5
|
Значення
N, кількість лампочок
Координати лампочок
|
mindlin.txt
|
1
2 4
|
Мінімальна відстань
Номери лампочок
|
Успішного виконання!
f=int(input())
n=int(input())
P=1
for j in range(1,n+1):
S=0
for i in range (1,j+1):
S=S+i
P=P*(S+f)
print (P)
# 2 спосіб
P=1
for i in range (1,n+1):
f=f+i
P=P*f
print (P)
Задача 1
var
i,j,f,n,k,p: integer;
begin
read (f,n);
P:=1;
for I:=1 to n do
begin
K:=0;
for j:=1 to i do
K:=K+j;
P:=P*(F+K);
end;
Write (P);
end.
_____________________
var
F,N,I,P :integer;
begin
read (F,N);
P:=1;
for I:=1 to N Do
begin
F:=F+i;{F+1..F+1+2..F+1+2+3..}
P:=P*F;
end;
Write (P);
end.
_____________________
var
F,N,I,P :integer;
begin
read (F,N);
P:=1;
for I:=1 to N Do
begin
F:=F+i;{F+1..F+1+2..F+1+2+3..}
P:=P*F;
end;
Write (P);
end.
Задача2
var
A: array [1..50]of integer;
i,j,N,X,l : integer;
f1,f2: text;
begin
Assign (f1,'input10.txt');
Reset (f1);
read (f1,N);
for I:=1 to N do
read (f1,A[i]);
read (f1,x);
close(f1);
Assign (f2,'output10.txt');
Rewrite(f2);
for I:=1 to n do
if A[i]<X then
begin
L:=i;
break; //прерывание поиска
end;
if A[1]<X Then L:=1;//если первый
if A[N]>X Then L:=N+1;// если последний
writeln (f2,l);
for I:=1 to N do
if L=i then write (f2,X,' ',A[i],' ') else Write(f2,A[i],' ');
if L>n then write (f2,X);
close(f2);
end.
задача3
var
A,B,C,D: array [1..1000]of integer;
i,j,N,X,l,min,k, d_min,m,m1 : integer;
f1,f2: text;
begin
Assign (f1,'tochki.txt');
Reset (f1);
read (f1,N);
for I:=1 to N do
begin
read (f1,A[i]);
B[i]:=i;
end;
close(f1);
for I:=1 to n-1 do
for J:=i+1 to n do
if A[i]<A[j] then
begin
min:=A[i];
A[i]:=A[J];
A[j]:=min;
min:=B[i];
B[i]:=B[j];
B[j]:=min;
end;
for I:=1 to N-1 do
C[I]:=A[I]-A[i+1];
for I:=1 to N do
Writeln (A[i],' ',B[i],' ',C[i]);
min:=C[1];
L:=1;
K:=0;
for I:=1 to N-1 do
if min>=C[i]then
begin
min:=C[i];
L:=i;
K:=K+1;
end;
//m:=B[L];
for I:=1 to n-1 do
if (B[i]<B[L]) and(C[i]=min) then L:=i;//решение на консоль
Writeln(min);
Write (B[L],' ',B[L+1]);
Assign (f2,'mindlin.txt');
Rewrite(f2);
Writeln (f2,min);
if K=1 then Write (f2,B[l],' ',B[L+1])else begin
for I:=1 to n-1 do
if min=C[i] then
begin
D[i]:=B[i];//запись номеров
ламп с минимальнім расстоянием
D[I+1]:=B[I+1];
end;
d_min:=2000000;
for I:=1 to n do
if (d_min>D[i]) and (D[i]<>0) then // поиск левой лампы
begin
d_min:=D[i];
L:=i;
end;
Write (f2,B[l],' ',B[L+1])
end;
close(f2);
end.
Задача 3 оновлено
var
A,B,C,D: array [1..1000]of integer;
i,j,N,X,l,min,k,k1,
d_min,m,m1,l1,l2 : integer;
f1,f2: text;
begin
Assign (f1,'tochki.txt');
Reset (f1);
read (f1,N);
for I:=1 to N do
begin
read (f1,A[i]);
B[i]:=i;
end;
close(f1);
for i:=1 to n do
write (a[i],' ');
K:=A[1]-A[2];
L1:=1;
L2:=2;
for I:=1 to n-1 do
for J:=i+1 to n do
begin
If (a[i]>a[j]) then K1:=A[i]-A[j]
else K1:=A[j]-A[i];
if (K1<K) then
begin
K:=K1;
L1:=i;
L2:=j;
end;
end;
Write (k,' ');
writeln;
Write (l1,' ',l2);
end.
Немає коментарів:
Дописати коментар