среда, 15 марта 2017 г.

Олімпіадні задачі c#

Хлопчик Петя будує з кубиків сходи. Сходи є кілька споруджуваних поруч башточок з кубиків, кожна з яких рівно на один кубик вище попередньої. Потрібно за наявним у хлопчика Петі числа кубиків визначити, який в кубиках буде висота останньої сходинки.
Вхідні дані
Вхідний файл INPUT.TXT містить число К - кількість кубиків у хлопчика Петі (1 <= K <= 106).
Вихідні дані
У вихідний файл OUTPUT.TXT виведіть кількість кубиків в останній сходинці у максимально високої драбини, яку можна побудувати з K кубиків

У різдвяний вечір на віконці стояло три квіточки, зліва на право: герань, крокус і фіалка. Щоранку Маша витирала віконце і міняла місцями стоячу праворуч квітку з центральним квіткою. А Таня кожен вечір поливала квіточки і міняла місцями ліву і центральну квітку. Потрібно визначити порядок квітів вночі після K днів.
Вхідні дані
У вхідному файлі INPUT.TXT міститься натуральне число K - число днів (K <= 1000).
Вихідні дані
У вихідний файл OUTPUT.TXT потрібно вивести три латинських букви: «G», «C» і «V» (великі літери без пробілів), які описують порядок квітів на віконці після закінчення K днів (зліва направо). Позначення: G - герань, C - крокус, V – фіалка
INPUT.TXT
OUTPUT.TXT
1
1
VGC
2
5
CVG



Задача. Петрик П'яточкін вишикував у рядок слоненят та рахує їх по кожному кольору окремо. Всього буває 8 кольорів слоненят. У рядок вишикувались N (10

Технічні умови. Програма зчитує з клавіатури ціле число N - кількість слоненят, потім, через пропуск - N чисел від 1 до 8, якими ми пронумеровали кожен колір в тій послідовності, в якій вони потрапляли на очі Петрику від початку рядка. Програма виводить на екран в один рядок через пропуски пари цілих чисел, де перше число пари - колір, а друге - кількість слоненят такого кольору.

Приклад.

Введення>12 1 1 2 3 3 1 5 6 8 7 6 5 
Виведення> 1 3 2 1 3 2 4 0 5 2 6 2 7 1 8 1
Розв'язання.
Використаємо для підрахунку слоників масив цілих чисел з восьми елементів. Ітий елемент масиву буде кількість слоників ітого кольору. Так як пам'ятати стрій слоників не потрібно, то будемо зчитувати по одному слонику і збільшувати на 1, елемент масиву з номером відповідного кольору.
Запишемо алгоритми мовами програмування.


Реалізація методу обміну значеннями. Створити метод swap для  обміну значеннями у масиві між  у п’ятим і шостим елементом.
На площині дано дві окружності. Потрібно перевірити, чи перетинаються вони.
Вхідні дані
Вхідний файл INPUT.TXT складається з двох рядків. На кожному рядку записана інформація про одному колі - координати її центру x і y (цілі числа, по модулю не перевищують 5000) і радіус (ціле число 1 ≤ r ≤ 1000).
Вихідні дані
У вихідний файл OUTPUT.TXT виведіть «YES», якщо кола перетинаються, і «NO» в іншому випадку.

 
Для початку визначимося з тим, що нам відомі радіуси кіл і вони рівні r1 і r2. Так само за формулою відстані між точками ми можемо обчислити відстань між центрами даних кіл:
r = sqrt ((x2-x1) 2 + (y2-y1) 2) 
Зауважимо також, що окружності будуть перетинатися тоді і тільки тоді, коли можливий трикутник зі сторонами r1, r2 і r. Фігуру, дві сторони якої лежать на третій або одна зі сторін має нульову довжину так само будемо вважати трикутником, тому що окружності можуть один одного стосуватися (r = r1 + r2), або повністю збігатися (r = 0).
Трикутник вважається можливим якщо сума двох будь-яких його сторін не менше третьої. Тобто в нашому випадку досить перевірити, що r1 + r2> = r і r + r2> = r1 і r + r1> = r2. При цьому бажано використовувати речові типи даних. Так само можна провести акуратне порівняння з урахуванням можливих похибок при обчисленнях
Втомлені від незвично теплу зиму, жителі вирішили дізнатися, чи дійсно це найдовша відлига за всю історію спостережень за погодою. Вони звернулися до синоптиків, а ті, в свою чергу, зайнялися дослідженнями статистики за минулі роки. Їх цікавить, скільки днів тривала найдовша відлига.
Відлигою вони називають період, в який середньодобова температура щодня перевищувала 0 градусів Цельсія. Напишіть програму, що допомагає синоптикам в роботі.
Вхідні дані
У вхідному файлі INPUT.TXT спочатку записано число N - загальна кількість даних днів (1 ≤ N ≤ 100). У наступному рядку через пропуск розташовується N цілих чисел, розділених пробілами. Кожне число - середньодобова температура в відповідний день. Температури - цілі числа і лежать в діапазоні від -50 до +50.
Вихідні дані
У вихідний файл OUTPUT.TXT потрібно вивести одне число - довжину найтривалішою відлиги, тобто найбільшу кількість послідовних днів, протягом яких середньодобова температура перевищувала 0 градусів. Якщо температура в кожен з днів була непозитивно, виведіть 0.
INPUT.TXT
OUTPUT.TXT
1
6
-20 30 -40 50 10 -10
2

На свій день народження Петя купив гарний і смачний торт, який мав ідеально круглу форму. Петя не знав, скільки гостей прийде на його день народження, тому змушений був розробити алгоритм, згідно з яким він зможе швидко розрізати торт на N рівних частин. Слід врахувати, що розрізи торта можна робити як по радіусу, так і по діаметру.
Допоможіть Петі вирішити цю задачу, визначивши найменшу кількість розрізів торта за заданою кількістю гостей.
Вхідні дані
Вхідний файл INPUT.TXT містить натуральне число N - кількість гостей, включаючи самого винуватця торжества (N <= 1000).
Вихідні дані
У вихідний файл OUTPUT.TXT виведіть мінімально можливу кількість розрізів торта.

Допоможіть Васі вирішити цю задачу, визначивши максимальне число не обов'язково рівних шматків, які може отримати Вася, розрізаючи піцу таким чином.
Вхідні дані
Вхідний файл INPUT.TXT містить натуральне число N - кількість прямих розрізів піци (N <= 1000).
Вихідні дані
У вихідний файл OUTPUT.TXT виведіть відповідь на задачу.
INPUT.TXT
OUTPUT.TXT
1
2
4
Використовуємо середню арифметичну прогресію (динамічне програмування)
static void Main(string[] args)
        {
            int n = Convert.ToInt32(Console.ReadLine()); ;
            Console.WriteLine(((n * (n + 1)) / 2 + 1));
  }

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

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