Завдання олімпіади

Post on 18-Feb-2017

30 Views

Category:

Education

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Завдання IІ етапу Всеукраїнської учнівської олімпіади з інформатики 2012-2013 н.р.

Задача 1. «Число» (25 балів) Ім’я файлу програми: NUMBER.*Ім’я вхідного файлу: INPUT.DATІм’я вихідного файлу: OUTPUT.ANSМаксимальний час роботи на одному тесті: 1сІноді хочеться показати оточуючим, що ви - нібито екстрасенс. Можливо, хочеться продемонструвати діткам, як багато

ви знаєте і вмієте. Вгадування загаданого числа - відмінний фокус для того, щоб розташувати до себе людей.Інструкція

1. Попросіть загадати три цифри (обов'язково цифри, а не числа).2. Потім попросіть його помножити першу загадану цифру на 2 і додати до результату, що вийшов 3. Потім помножити це число на 5.3. Потім до вже отриманого числа додав другу загадану цифру і помножити суму на 10.4. До нового числа, що вийшло додайте третю задуману цифру.5. Попросіть його назвати число, що вийшло.6. Зробіть вигляд, що ви задумалися (тільки довго не думайте). Тим часом, відніміть від вимовленого вголос числа 150. Вийде, що перша, друга і третя цифри результату є задуманими цифрами гравця.

Вхідні дані. Вхідні дані містять рядок з числом, яке назвав учень. Вихідні дані. Вихідний текстовий файл містить рядок з трьома задуманими числами через пропуск.

Приклад файлів

Розв’язокФормула: d-150. Розкласти на цифри і вивести.

Програмний кодprogram number;

{$APPTYPE CONSOLE}

var a,b,c,d:integer;beginassign(input, 'number.in');reset(input);readln(d);d:=d-150;a:=d div 100;b:=d div 10 mod 10;c:=d mod 10;

close(input);assign(output, 'number.out');rewrite(output);writeln(a,' ',b,' ',c);close(output);end.

INPUT.DAT OUTPUT.ANS747  5 9 7

Задача 2. «Фігура» (25 балів)

Ім’я файлу програми: FIGURE.*Ім’я вхідного файлу: INPUT.DATІм’я вихідного файлу: OUTPUT.ANSМаксимальний час роботи на одному тесті: 5сУчитель математики намалював на дошці чотири відрізки. Дошка була інтерактивна, тому легко визначив координати

кінців відрізка, відрізки можна переміщувати і повертати. Вчитель продиктувавши учням координати кінців відрізків, попросив визначити, яку фігуру можна побудувати з даних відрізків.

Вхідні дані. Вхідний текстовий файл містить чотири рядки по чотири цілих числа розділених пропусками, які задають координати початку та кінця чотирьох відрізків (|x,y|≤2147483647).

Вихідні дані. Вихідний текстовий файл містить єдиний рядок з назвою фігури з найвищим пріоритетом(див. таблицю).

Приклад файлів Фігура Пояснення Пріоритет INPUT.DAT OUTPUT.ANSSQUARE Квадрат 4 0 0 0 4

0 4 4 44 4 4 04 0 0 0

SQUARERECTANGLE Прямокутник 3TRAPEZOID Рівнобічна трапеція 2QUADRANGLE Чотирикутник 1LAMAN Ламана 0

Програмний кодprogram figure;

{$APPTYPE CONSOLE}

uses math;

var x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x6,y6,x7,y7,x8,y8:integer;a,b,c,d:double;

beginassign(input, 'figure.in');reset(input);read(x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x6,y6,x7,y7,x8,y8);close(input);assign(output, 'figure.out');rewrite(output);a:=sqrt(power(x1-x2,2)+power(y1-y2,2));b:=sqrt(power(x3-x4,2)+power(y3-y4,2));c:=sqrt(power(x5-x6,2)+power(y5-y6,2));d:=sqrt(sqr(x7-x8)+sqr(y7-y8));//writeln(a:0:1,' ',b:0:1,' ',c:0:1,' ',d:0:1);if (a=b) and (b=c) and (c=d) then writeln('SQUARE') elseif (a=b) and (c=d) or (a=c) and (b=d)then writeln('RECTANGLE') elseif(((a=b) and (c>d)and (c<a+b+d)) or ((a=b)and(d>c) and (d<a+b+c)))or(((a=c) and (b>d)and(b<a+c+d)) or ((a=c)and(d>b) and (d<a+b+c)))or(((a=d) and (b>c)and(b<a+c+d)) or ((a=d) and (c>b)and (c<a+b+d)))or(((b=c) and (a>d)and (a<b+c+d)) or ((b=c) and (d>a)and (d<a+b+c)))or(((b=d) and (a>c)and (a<b+c+d)) or ((b=d) and (c>a)and (c<a+b+d)))or(((c=d) and (a>b)and (a<b+c+d)) or ((c=d) and (b>a)and (b<a+c+d)))thenwriteln('TRAPEZOID') elseif (a<b+c+d) and (b<a+c+d) and (c<a+b+d) and (d<a+b+c) thenwriteln('QUADRANGLE') elseif (a>=b+c+d ) or (b>=a+c+d) or (c>=a+b+d) or (d>=a+b+c) thenwriteln('LAMAN')else writeln('TRIANGLE');close(output);end.

Завдання 3. «Коло» (25 балів)

Ім’я файлу програми: CIRCLE.*Ім’я вхідного файлу: INPUT.DATІм’я вихідного файлу: OUTPUT.ANSМаксимальний час роботи на одному тесті: 2 сДуже талановитий учень вмів від руки малювати ідеальні кола. За перерву він на дошці намалював велику кількість кіл.

На початку уроку вчитель попросив учнів класу поміряти радіуси або діаметри кіл дерев’яною лінійкою в сантиметрах. Вчитель записав в зошит їхні заміри, порахував кількість замірів і попросив талановитого «художника» підрахувати

кількість різних кіл, яку він намалював. Технічні умови. Програма CIRCLE читає з першого рядка файлу кількість замірів N (1≤N≤1000000) та наступного рядка

з N натуральних чисел, які задають розмір кіл (не більші 1000000). Числа розділено пропуском. Програма виводить на екран єдине число - шукану величину.

Приклад файлів

Розв’язокВ допоміжний масив занести інформацію про радіуси і діаметри кіл, де розмір відповідає індексу масиву.

Програмний кодprogram circle;

{$APPTYPE CONSOLE}

uses math;

var a,b:array[1..1000000] of int64;t,i,j:longint;n,k:int64;begin

assign(input, 'input.dat');reset(input);assign(output, 'output.ans');rewrite(output);

for j:=1 to 1000000 do b[j]:=0;readln(n);for j:=1 to n do beginread(t);b[t]:=1;end;k:=0;for j:=1 to n do begink:=k+b[j];end;

k:=0;for j:=1 to 1000000 dobeginif ((b[j]>0)and(j mod 2=1))then k:=k+1;if ((b[j]>0) and (j mod 2=0)and (b[j div 2]=0))then begin k:=k+1;end;if ((b[j]>0) and (j mod 2=0)and (b[j div 2]>0))then b[j]:=0;

end;writeln(k);close(input);close(output);

end.

INPUT.DAT OUTPUT.ANS2 1 3

2

21 2

1

Задача 4. «Трикутник» (25 балів)Ім’я файлу програми: TRIANGLE.*Ім’я вхідного файлу: INPUT.DATІм’я вихідного файлу: OUTPUT.ANSМаксимальний час роботи на одному тесті: 5сІнший талановитий учень, після вивчення теореми Піфагора, перед наступним уроком намалював на дошці N

прямокутних трикутників. Вчитель на початку уроку визначив довжини сторін трикутника дерев’яною лінійкою в сантиметрах і заокругливши до цілого записав числа в зошит. На початку уроку, закривши дошку, продиктував записані числа в довільному порядку та попроси визначити яку кількість прямокутних трикутників побудував «учень Піфагора».

Вхідні дані. Вхідний текстовий файл містить в першому рядку число  N (3<=N<=100) ,  далі слідують 3*N рядків, у кожному одне натуральне число (a<=2147483647).

Вихідні дані. Вихідний текстовий файл містить один рядок з цілим числом k – максимальна кількість прямокутних трикутників , які можна побудувати з заданих сторін.

Приклади файлівINPUT.DAT OUTPUT.ANS INPUT.DAT OUTPUT.ANS

213512453

2 2345678

1

Програмний кодprogram TRIANGLE;

{$APPTYPE CONSOLE}

var a:array[1..1000000] of integer;x:array[1..1000000] of integer;i,n,k,j:integer;s:integer;beginassign(input, 'input.dat');reset(input);readln(n);for i:=1 to n*3 doread(a[i]);close(input);//assign(output, 'output.ans');rewrite(output);for i:=1 to n*3 do x[i]:=0;for i:=1 to n*3 dofor j:=1 to n*3 dofor k:=1 to n*3 doif (round(sqrt(a[i]*a[i]+a[j]*a[j]))=round(sqrt(a[k]*a[k]))) and (x[i]=0) and(x[j]=0) and(x[k]=0)and (i<>j)and (j<>k)thenbeginx[i]:=1;x[j]:=1;x[k]:=1;end;for i:=1 to n*3 do s:=s+x[i];writeln(s/3:0:0);close(output);

end.

Сумарна кількість балів – 100

top related