У банка есть клиенты. Каждый клиент имеет ровно один счет.
Напишите программу (обязательно с использованием ассоциативного массива), которая будет выполнять последовательность запросов таких двух видов:
1) начинается с числа 1, затем через пробел следует имя клиента (слово из латинских букв), далее через пробел идет сумма денег, которая прилагается к счету текущего клиента (целое число, не превышает по модулю 10000).
2) начинается с числа 2, через пробел следует имя клиента. На каждый такой запрос программа должна ответить какая сумма в данный момент есть на счету заданного клиента. Если такое имя клиента пока ни разу не упоминалось в запросах вида 1, выводите вместо числа слово ERROR.
В начале работы программы у всех клиентов на счету 0. Затем суммы могут становиться как положительными, так и отрицательными.
Обратите внимание, что в ситуации, когда клиент снял суммарно ровно столько же денег, сколько положил, сумма на счете становится равной 0; но, раз его имя уже встречалось, нулевое значение не является основанием выводить ERROR.
Первая строка стандартного входного потока — количество запросов N (1 < N < 100000). Далее следуют N строк в каждой из которых описан один из двух описанных выше видов запроса.
На каждый запрос 2-го вида нужно вывести текущее значение на счету заданного клиента (или слово ERROR).
7 1 asdf 3 1 zxcv 5 2 asdf 1 asdf -2 2 asdf 2 lalala 2 zxcv
3 1 ERROR 5
Напишите программу, которая будет реализовывать поиск в ширину в простом графе, вершины которого не нумерованы и идентифицируются словесными названиями.
В первой строке входных данных задано число NUM — количество различных поисков в ширину, которые нужно выполнить (на разных графах). Далее следуют NUM блоков, каждый из которых имеет следующую структуру.
Первая строка блока содержит целое число M — количество ребер графа. Далее следуют M строк, каждая из которых содержит по два названия — концы соответствующего ребра. Названия гарантированно не содержат пробелов и отделены друг от друга одним пробелом. Далее, в последней строке блока, записано единственное название — вершина, начиная с которой нужно запустить поиск (это название гарантированно хоть раз упоминалась как конец одного из ребер).
Количество различных графов в одном тесте NUM не превышает 5, количество рёбер в графе не превышает 50000.
Выведите на стандартный выход (экран) NUM блоков, в каждом из которых записаны расстояния от указанной начальной вершины до всех достижимых (если есть недостижимые вершины, они вообще не упоминаются). Перечень должен быть отсортирован по названиям вершин, каждая пара (название, расстояние) должна выводиться в отдельной строке, блоки должны быть отделены друг от друга строкой «===» (три знака «равно»).
Задачу можно решить, пользуясь map<string,int> и vector<string> для преобразований имен в номера и номеров в имена; тогда внутри программы можно использовать представление графа как vector<vector<int> >. Для вывода в отсортированном порядке использовать прохождение по всем элементам от begin() до end() структуры map<string,int> (превращающей названия в номера).
Другой способ — вообще отказаться от нумерации вершин числами и представлять граф как map<string,vector<string> >; в этом случае массивы, используемые самим поиском, следует заменить на map<string,int>.
2 2 Cherk Zol Cherk Sm Zol 4 A Bb Bb Ccc Ccc A Dddd Eeeee Bb
Cherk 1 Sm 2 Zol 0 === A 1 Bb 0 Ccc 1
Проводя генеральную уборку на дачном чердаке, Саша нашел в комоде кучу доминошек из разных наборов. Каждая доминошка представляет собой прямоугольник, разделенный на две половинки. На каждой из половинок нарисовано от 0 до 6 точек. Ориентации доминошки не имеют — их можно как угодно поворачивать.
В совсем раннем детстве Саша видел, как играют в домино: суть игры заключается в том, что надо брать доминошку и как можно громче колотить ею об стол, крича при этом «рыба!». Услышав доносящийся с чердака грохот, наверх поднялся Сашин дедушка. Он смог объяснить Саше настоящие правила игры в домино: игроки составляют длинную цепочку, в которой соседние доминошки касаются половинками с одинаковым числом точек.
Саше решил называть «дружными доминошками» пару доминошек, которые можно поставить в игре рядом (т.е. доминошки в паре соприкасаются половинками с равными числами) в том или ином порядке. Играть в домино ему не с кем, поэтому Саша развлекается тем, что всевозможными способами составляет пары и считает количество «дружных доминошек».
По заданному набору доминошек определите, сколько пар «дружных доминошек» можно составить из него. Пары, отличающиеся хотя бы одной доминошкой, считаются различными. По-разному составленная пара из одних и тех же доминошек считается один раз.
В первой строке входного файла содержится натуральное число N — количество доминошек (1 ≤ N ≤ 40 000).
В каждой из последующих строк содержится описание доминошки: два целых числа X и Y (0 ≤ X, Y ≤ 6) — количество точек на каждой из половинок доминошки.
Выведите одно число — количество пар дружных доминошек.
Во втором тесте дружными являются следующие пары:
1-2 2-3
1-2 3-1
2-3 3-1
2-3 4-3
2-3 4-3
3-1 4-3
3-1 4-3
4-3 4-3
2 1 2 2 1
1
5 1 2 2 3 3 1 4 3 4 3
8
Во входном файле (вы можете читать данные из файла input.txt
)
записан текст. Словом считается последовательность непробельных символов
идущих подряд, слова разделены одним или большим числом пробелов
или символами конца строки.
Для каждого слова из этого текста подсчитайте, сколько раз оно встречалось в этом тексте ранее.
Вводится текст.
Выведите ответ на задачу.
one two one tho three
0 0 1 0 0
She sells sea shells on the sea shore; The shells that she sells are sea shells I'm sure. So if she sells sea shells on the sea shore, I'm sure that the shells are sea shore shells.
0 0 0 0 0 0 1 0 0 1 0 0 1 0 2 2 0 0 0 0 1 2 3 3 1 1 4 0 1 0 1 2 4 1 5 0 0
Вам дан словарь, состоящий из пар слов. Каждое слово является синонимом к парному ему слову. Все слова в словаре различны. Для одного данного слова определите его синоним.
Программа получает на вход количество пар синонимов \(N\). Далее следует \(N\) строк, каждая строка содержит ровно два слова-синонима. После этого следует одно слово.
Программа должна вывести синоним к данному слову.
Эту задачу можно решить и без словарей (сохранив все входные данные в списке), но решение со словарем будет более простым.
3 Hello Hi Bye Goodbye List Array Goodbye
Bye