Олимпиада по информатике 2018

II этап Всеукраинской олимпиады по информатике для 8-11 классов.

Содержание



Сумма

Напишите программу нахождения суммы n первых членов последовательности:

    \[   \frac{1}{c} + \frac{1}{c(c+1)} + \dots + \frac{1}{c(c+1)\dots(c+n)}. \]

Где n < 100, |c| < 10.

Самое длинное покрытие

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

Входные данные

В первой строке — натуральное число N (1 ⩽ N ⩽ 30 — количество отрезков).
Во второй строке — Целые координаты (x,y) заданных отрезков на прямой, записанные в строку. (Во входном файле: x1=5 — начало, y1=6 — конец отрезка).

Выходные данные

В первой строке — наибольшая длина отрезков.

Пример входных и выходных данных

input.txt output.txt
3
5 6 1 3 2 4
3

Шарики

Как-то Петрик застал младшего братика Мишу над сложной задачкой для 3 класса и попросил Мишу объяснить ему условие. Миша рассказал, что у него есть всего три разноцветных шарика: зеленый, красный и синий. Если он добавит к этому набору еще несколько шариков, то потом ему нужно будет определить, какое наименьшее количество шариков нужно заменить, чтобы они стали одного цвета.
Петрик подумал, и, очень обрадовался, что сможет помочь братику. А ты сможешь?

Входные данные

В первой строке — натуральное число N (3 ⩽ N ⩽ 100 — количество шариков).
Во второй строке — N шариков с обозначением цвета (g — зеленый, b — синий, r — красный).

Выходные данные

В первой строке — наименьшее количество шариков, которые нужно заменить, чтобы все шарики были одного цвета.

Пример входных и выходных данных

input.txt output.txt
10
grbrrgrbrg
5

Комментарии (1)

  • Avatar

    Никита

    |

    //Шарики
    uses crt;
    var r, g, b, N, i, k, k1, k2, x: integer;
    r1,g1,b1:char;
    str:string;
    begin
    k:=0;
    k1:=0;
    k2:=0;
    r1:='r';
    g1:='g';
    b1:='b';
     readln(N);
     readln(str);
      for i:=1 to N do
       begin
        if str[i] = r1 then k:=k+1;
        if str[i] = g1 then k1:=k1+1;
        if str[i] = b1 then k2:=k2+1;
       end;
     if (k > k1) and (k > k2) then writeln(k);
     if (k1 > k) and (k1> k2) then writeln(k1);
     if (k2 > k) and (k2> k1) then writeln(k2);
    readkey();
    end.
    

    Reply

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