• Главная
  • Скачать
  • лабораторка Проверка строки


    Предмет: Программирование. Добавлен: 12.11.2020. Год: 2018. Страниц: 7. Оригинальность по antiplagiat.ru: < 30%

    A. Проверка строки
    У A есть строка, изначально состоящая из некоторого количество букв «a». Он дал свою строку другу B, который добавил некоторое количество букв «b» в конец этой строки. Так как A и B любят буквы «a» и «b», то после этих операций в строке есть хотя бы по одной букве «a» и «b».
    Затем B передал эту строку C, который добавил некоторое количество букв «c» в конец строки. Так как C хороший друг A и B, количество букв «c», которые он добавил к строке, равно количеству букв «a» или количеству букв «b», имеющихся в строке. Возможно такое, что количество букв «c» одновременно равно количеству букв «a» и количеству букв «b».
    Вам дана строка и вы должны определить могла ли эта строка быть получена в результате описанных выше действий. Если это возможно, выведите «YES», иначе, выведите «NO» (без кавычек).
    Входные данные
    В единственной строке входных данных задана строка SS (1?|S|?50001?|S|?5000). Гарантируется, что строка состоит только из строчных латинских букв «a», «b», «c».
    Выходные данные
    Выведите «YES» или «NO» в соответствии с условием.
    Примеры
    входные данные
    aaabccc
    выходные данные
    YES
    входные данные
    bbacc
    выходные данные
    NO
    входные данные
    aabc
    выходные данные
    YES
    Примечание
    Рассмотрим первый пример: количество букв «c» равно количеству букв «a».
    Рассмотрим второй пример: несмотря на то, что количество букв «c» равно количеству букв «b», порядок букв неправильный.
    Рассмотрим третий пример: количество букв «c» равно количеству букв «b».
    Код программы:
    #include ‹iostream›
    #include ‹string›
    #include ‹algorithm›

    using namespace std;

    int main () {
    string s;
    cin ›› s;
    string s1 = s;
    sort(s1.begin(), s1.end());
    if (s1 != s)
    {
    cout ‹‹ "NO";
    return 0;
    }
    ***
    }
    Описание программы: сортируем строку s1 и сравниваем с s если они равны, то считается кол-во букв a, b и c , если a==c или b==c то выводим yes, иначе no.

    B. Множество - 1
    Вам требуется написать программу для работы со множеством целых чисел, реализующую следующие основные операции:
    • вставка элемента. Если элемент уже есть во множестве, оно не изменяется
    • определение размера множества, то есть количества элементов в нём
    Входные данные
    В первой строке входных данных записано целое число N – количество вставляемых элементов (1???N???105). В следующих Nстроках записано по одному целому числу – элементы, которые будут поочерёдно вставляться в множество (все элементы не превышают по модулю 109).
    Выходные данные
    Выведите N целых чисел – размер множества после вставки каждого элемента
    Пример
    входные данные
    4
    1
    3
    1
    2
    выходные данные
    1
    2
    2
    3
    Код программы:
    #include ‹iostream›
    #include ‹set›
    #include ‹algorithm›

    using namespace std;

    int main () {
    set ‹int› ps;
    int n,t;
    cin ›› n;...
    Описание программы: вставляем элемент в множество если встретилось add , если встретилось del удаляем.


    D. Множество - 3
    Вам требуется написать программу для работы со множеством целых чисел, реализующую следующие основные операции:
    • вставка элемента. Если элемент уже есть во множестве, оно не изменяется
    • поиск элемента по его порядковому номеру (считая, что все элементы во множестве пронумерованы по возрастанию – у самого маленького номер 1, у следующего – 2 и т.д.)
    Входные данные
    В первой строке входных данных записано целое число N – количество вставляемых элементов (1???N???105). В следующих Nстроках записана команда (add или get) и через пробел целое число x. В случае команды add число x – это элемент, который нужно вставить в множество. В случае команды get число x – это порядковый номер элемента, который нужно напечатать (гарантируется, что элемент с таким номером в множестве есть). Все элементы множества не превышают по модулю 109.
    Выходные данные
    Выведите ответ для каждой команды get.
    Пример
    входные данные
    5
    add 1
    add 3
    get 1
    add 1
    get 2
    выходные данные
    1
    3
    Код программы:
    #include ‹ext/pb_ds/assoc_conta ner.hpp›
    #include ‹ext/pb_ds/tree_policy hpp›
    #include ‹ext/pb_ds/detail/sta dard_policies.hpp›

    #include ‹iostream›
    #include ‹algorithm›
    #include ‹string›

    using namespace std;
    using namespace __gnu_pbds;

    typedef tree‹...
    Описание программы: Описание программы: суть данной структуры описана в blog/entry/9702
    Процедура x.order_of_key(key) выводит кол-во элементов меньших key.

    Перейти к полному тексту работы