Данный репозиторий служит хранилищем для алгоритмов, которые были созданы в качестве тренировки.
*Каждый класс работает независимо, запускать каждый алгоритм необходимо из текущего класса (Current File).
Список алгоритмов:
На вход подается файл input.txt из resourses. В первой строке содержатся три числа: N, S и F (1≤ N ≤ 100, 1 ≤ S, F ≤ N), где N — количество вершин графа, S — начальная вершина, а F — конечная. В следующих N строках вводится по N чисел, не превосходящих 100, – матрица смежности графа, где -1 означает что ребра между вершинами нет, а любое неотрицательное число — наличие ребра данного веса. На главной диагонали матрицы записаны нули
Вывод в консоль: искомое расстояние или -1, если пути между указанными вершинами не существует.
*Данный алгоритм считается быстрым, так как использует приоритетную очередь (кучк) для поиска минимального ребра (что является первым в очереди).
Ввод (пример):
6 4
1 2 7
2 4 8
4 5 1
4 3 100
3 1
Вывод:
115
В первой строке входного файла содержится число N — количество элементов массива (0 ≤ N ≤ 106). Во второй строке содержатся N целых чисел ai, разделенных пробелами (-109 ≤ ai ≤ 109).
Ввод (пример):
5
1 5 2 4 3
Вывод:
1 2 3 4 5
В первой строке входного файла содержится число N — количество элементов массива (0 ≤ N ≤ 106). Во второй строке содержатся N целых чисел ai, разделенных пробелами (-109 ≤ ai ≤ 109).
Ввод (пример):
5
1 5 2 4 3
Вывод:
1 2 3 4 5
Первая строка входного файла содержит целое число n (1 ≤ n ≤ 1000) . Последующие n строк содержат каждая по одной строке si . Длины всех si , одинаковы и не превосходят 20. Все si состоят только из цифр от 0 до 9.
Ввод (пример):
9
12
32
45
67
98
29
61
35
09
Вывод:
Initial array:
12, 32, 45, 67, 98, 29, 61, 35, 09
**********
Phase 1
Bucket 0: empty
Bucket 1: 61
Bucket 2: 12, 32
Bucket 3: empty
Bucket 4: empty
Bucket 5: 45, 35
Bucket 6: empty
Bucket 7: 67
Bucket 8: 98
Bucket 9: 29, 09
**********
Phase 2
Bucket 0: 09
Bucket 1: 12
Bucket 2: 29
Bucket 3: 32, 35
Bucket 4: 45
Bucket 5: empty
Bucket 6: 61, 67
Bucket 7: empty
Bucket 8: empty
Bucket 9: 98
**********
Sorted array:
09, 12, 29, 32, 35, 45, 61, 67, 98
В первой строке записана S (1 ≤ |S| ≤ 2 ⋅ 105), состоящая из строчных латинских букв. Во второй строке записано число Q (1 ≤ Q ≤ 2 ⋅ 105) — количество запросов. В следющих Q строках записаны запросы: целые числа L, A и B (1 ≤ L ≤ |S|, 0 ≤ A, B ≤ (|S| - L)) — длина подстрок и позиции, с которых они начинаются.
Ввод (пример):
acabaca
3
4 3 2
3 4 0
2 0 1
Вывод:
no
yes
no
В первой и единственной строке входного файла записана строка, которая содержит только латинские буквы, длина строки не превышает 50000 символов.
Ввод (пример):
bcabcab
Вывод:
3
Одна строка длины N, 0 < N ≤ 106, состоящая из прописных латинских букв.
Ввод (пример):
abracadabra
Вывод:
0 0 0 1 0 1 0 4 0 0 1
Привидение Петя любит играть со своими кубиками. Он любит выкладывать их в ряд и разглядывать свое творение. Недавно друзья решили подшутить над Петей и поставили в его игровой комнате зеркало. Известно, что привидения не отражаются в зеркале, а кубики отражаются. Теперь Петя видит перед собой N цветных кубиков, но не знает, какие из этих кубиков настоящие, а какие — отражение в зеркале. Выясните, сколько кубиков может быть у Пети. Петя видит отражение всех кубиков в зеркале и часть кубиков, которая находится перед ним. Часть кубиков может быть позади Пети, их он не видит.
Первая строка входного файла содержит число N ( 1 ≤ N ≤ 1000000 ) и количество различных цветов, в которые могут быть раскрашены кубики — M ( 1 ≤ M ≤ 1000000 ). Следующая строка содержит N целых чисел от 1 до M — цвета кубиков.
Ввод (пример):
6 2
1 1 2 2 1 1
Вывод:
3 5 6
Вводится одна строка, состоящая из прописных латинских букв. Длина строки не превышает 100000 символов.
Ввод (пример):
aaa
Вывод:
6
