В
Все
Б
Биология
Б
Беларуская мова
У
Українська мова
А
Алгебра
Р
Русский язык
О
ОБЖ
И
История
Ф
Физика
Қ
Қазақ тiлi
О
Окружающий мир
Э
Экономика
Н
Немецкий язык
Х
Химия
П
Право
П
Психология
Д
Другие предметы
Л
Литература
Г
География
Ф
Французский язык
М
Математика
М
Музыка
А
Английский язык
М
МХК
У
Українська література
И
Информатика
О
Обществознание
Г
Геометрия
Albuss
Albuss
05.12.2021 01:04 •  Информатика

На n карточках написаны различные натуральные числа a1, a2, …, an (на каждой по одному). За один ход игрок забирает себе ровно одну из карточек. Леон и Ронни играют очень рассеянно и часто забывают, чья очередь хода. Поэтому неудивительно, что кто-то из них в некоторые моменты игры мог сделать несколько ходов подряд.

После каждого хода вычисляется сумма всех чисел на карточках каждого из игроков. Если сумма чисел на карточках у Леона оказывается больше, чем у

Ронни, записывается символ L, иначе — R. Например, если в начале игры Леон забрал карточку с числом 2, затем Ронни — карточку с числом 1, и, наконец, снова Ронни забрал карточку с числом 4, то для этой последовательности ходов записывают слово LLR.

Вам необходимо составить программу, которая по заданному набору из n чисел и слову длины n восстанавливает ход игры, то есть определяет, кто из игроков делал очередной ход и какие карточки брали игроки.
ФОРМАТ ВВОДА
В первой строке записано целое число n (1 ≤ n ≤ 105) — количество карточек.

Вторая строк содержит n различных целых чисел a1, a2, …, an (1 ≤ ai ≤ 109, 1 ≤ i ≤ n) — числа на карточках.

В третьей строке записано слово длины n — последовательность (без пробелов) из n символов L и R.
Формат вывода
Выведите последовательность из n строк. В каждой строке запишите число на очередной карточке, затем через пробел символ L или R, обозначающий, кто из игроков взял указанную карточку.

Показать ответ
Ответ:
angelinafeodoro
angelinafeodoro
19.03.2023 16:25
// PascalABC.NET 3.1, сборка 1250 от 28.05.2016
begin
  var a:=-1.32;
  var b:=1.49;
  var h:=0.11;
  var y1:=-14.0;
  var y2:=17.0;
  var k:=0;
  var x:=a;
  while x<=b do begin
    var y:=Tan(x);
    if (y>=y1) and (y<=y2) then begin
      Writeln('x=',x:5:2,'  y=',y:7:4);
      Inc(k)
      end;
    x+=h
    end;
  Writeln('Найдено значений: ',k)
end.

Результат
x=-1.32  y=-3.9033
x=-1.21  y=-2.6503
x=-1.10  y=-1.9648
x=-0.99  y=-1.5237
x=-0.88  y=-1.2097
x=-0.77  y=-0.9697
x=-0.66  y=-0.7761
x=-0.55  y=-0.6131
x=-0.44  y=-0.4708
x=-0.33  y=-0.3425
x=-0.22  y=-0.2236
x=-0.11  y=-0.1104
x= 0.00  y= 0.0000
x= 0.11  y= 0.1104
x= 0.22  y= 0.2236
x= 0.33  y= 0.3425
x= 0.44  y= 0.4708
x= 0.55  y= 0.6131
x= 0.66  y= 0.7761
x= 0.77  y= 0.9697
x= 0.88  y= 1.2097
x= 0.99  y= 1.5237
x= 1.10  y= 1.9648
x= 1.21  y= 2.6503
x= 1.32  y= 3.9033
x= 1.43  y= 7.0555
Найдено значений: 26
0,0(0 оценок)
Ответ:
Милана070800
Милана070800
06.10.2022 04:37
Код#include <iostream>#include <vector>template <class T>T order_statistics (std::vector<T> a, unsigned n, unsigned k);int main() {    std::vector<int> seq;    int N, input;    std::cin >> N;    for (int q = 0; q < N; ++q) {        std::cin >> input;        seq.push_back(input);    }    double median;    unsigned int len = seq.size();    if (len % 2 == 1) {        median = order_statistics(seq, len, (len+1) / 2);    }    else {        median = (order_statistics(seq, len, (len+1) / 2) + order_statistics(seq, len, (len+1) / 2 + 1)) / 2.0;    }    std::cout << "Median of seq: " << median;    return 0;}template <class T>T order_statistics (std::vector<T> a, unsigned n, unsigned k){    using std::swap;    for (unsigned l=1, r=n; ; )    {        if (r <= l+1)        {            if (r == l+1 && a[r] < a[l])                swap (a[l], a[r]);            return a[k];        }        unsigned mid = (l + r) >> 1;        swap (a[mid], a[l+1]);        if (a[l] > a[r])            swap (a[l], a[r]);        if (a[l+1] > a[r])            swap (a[l+1], a[r]);        if (a[l] > a[l+1])            swap (a[l], a[l+1]);        unsigned                i = l+1,                j = r;        const T                cur = a[l+1];        for (;;)        {            while (a[++i] < cur) ;            while (a[--j] > cur) ;            if (i > j)                break;            swap (a[i], a[j]);        }        a[l+1] = a[j];        a[j] = cur;        if (j >= k)            r = j-1;        if (j <= k)            l = i;    }}
с задачей по c++ Пусть задана последовательность из N целых неотрицательных чисел. Медианой такой по
с задачей по c++ Пусть задана последовательность из N целых неотрицательных чисел. Медианой такой по
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота