Skip to content

Commit 4933c8b

Browse files
committed
Добавлены задачи.
1 parent 6cdda51 commit 4933c8b

File tree

7 files changed

+225
-0
lines changed

7 files changed

+225
-0
lines changed

_other_tasks_/README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,7 @@
1717
<li><a href="https://github.com/allicen/Java-10000/tree/master/_other_tasks_/play" target="_blank">D. Игрушки</a> (УрФУ 2021)</li>
1818
<li><a href="https://github.com/allicen/Java-10000/tree/master/_other_tasks_/search" target="_blank">F. Прогулка по Новоуральску</a> (УрФУ 2021)</li>
1919
<li><a href="https://github.com/allicen/Java-10000/tree/master/_other_tasks_/book" target="_blank">E. Книжный шкаф</a> (УрФУ 2021)</li>
20+
<li><a href="https://github.com/allicen/Java-10000/tree/master/_other_tasks_/microbiology" target="_blank">C. Микробиология</a> (Отборочный тур RuCode 2022)</li>
21+
<li><a href="https://github.com/allicen/Java-10000/tree/master/_other_tasks_/numeric_palindrome" target="_blank">E. Числовой палиндром</a> (Отборочный тур RuCode 2022)</li>
22+
<li><a href="https://github.com/allicen/Java-10000/tree/master/_other_tasks_/second_above" target="_blank">B. Второй сверху</a> (Отборочный тур RuCode 2022)</li>
2023
</ol>
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package _other_tasks_.microbiology;
2+
3+
import java.io.FileReader;
4+
import java.io.IOException;
5+
import java.io.PrintWriter;
6+
import java.util.Scanner;
7+
8+
public class Microbiology {
9+
public static void main(String[] args) throws IOException {
10+
FileReader file = new FileReader("input.txt");
11+
Scanner sc = new Scanner(file);
12+
String[] data = sc.nextLine().split(" ");
13+
long n = Long.parseLong(data[0]);
14+
long m = Long.parseLong(data[1]);
15+
16+
long div = 1;
17+
long e = n;
18+
19+
while (e > 0) {
20+
21+
if (e % 2 == 1) {
22+
div *= n;
23+
}
24+
25+
n *= n;
26+
e >>= 1;
27+
28+
long r = div / m;
29+
if (r > 0) {
30+
div %= m;
31+
}
32+
33+
n %= m;
34+
}
35+
36+
PrintWriter out = new PrintWriter(System.out);
37+
out.println(div);
38+
out.flush();
39+
}
40+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<h1 class="title">C. Микробиология</h1>
2+
<p><b>Время: 1 сек.<br>Память: 512 Мб</b></p>
3+
<p>В начале эксперимента по изучению деления бактерий в чашке Петри была одна бактерия. К концу каждого дня количество бактерий увеличивалось в N раз (то есть к концу первого дня, например, там было N бактерий). В конце N-го дня биологи разделили получившиеся бактерии на колонии по M бактерий и забрали в другие лаборатории. Сколько бактерий осталось после этого в чашке Петри?
4+
</p>
5+
<h2>Формат ввода</h2>
6+
<p>Входной файл содержит через пробел числа N и M (1 ≤ M, N ≤ 10<sup>9</sup>).</p>
7+
<h2>Формат вывода</h2>
8+
<p>Выведите одно число — ответ к задаче.</p>
9+
<h3>Примеры</h3>
10+
<table class="sample-tests">
11+
<thead>
12+
<tr>
13+
<th>Ввод</th>
14+
<th>Вывод</th>
15+
</tr>
16+
</thead>
17+
<tbody>
18+
<tr>
19+
<td>3 1001</td>
20+
<td>27</td>
21+
</tr>
22+
<tr>
23+
<td>10 123456</td>
24+
<td>64000</td>
25+
</tr>
26+
</tbody>
27+
</table>
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
package _other_tasks_.numeric_palindrome;
2+
3+
import java.io.FileReader;
4+
import java.io.IOException;
5+
import java.io.PrintWriter;
6+
import java.util.ArrayList;
7+
import java.util.Comparator;
8+
import java.util.Scanner;
9+
10+
public class NumericPalindrome {
11+
public static void main(String[] args) throws IOException {
12+
FileReader file = new FileReader("input.txt");
13+
PrintWriter out = new PrintWriter(System.out);
14+
Scanner sc = new Scanner(file);
15+
sc.nextLine();
16+
String nums = sc.nextLine();
17+
String[] chArr = nums.split("");
18+
ArrayList<Integer> numArr = new ArrayList<>();
19+
20+
for (String ch: chArr) {
21+
numArr.add(Integer.parseInt(ch));
22+
}
23+
24+
numArr.sort(Comparator.reverseOrder());
25+
26+
int maxMidNumber = 0;
27+
ArrayList<Integer> numPrint = new ArrayList<>();
28+
29+
if (numArr.size() == 1) {
30+
maxMidNumber = numArr.get(0);
31+
}
32+
33+
for (int i = 1; i < numArr.size(); i++) {
34+
35+
if (numArr.get(i-1) > maxMidNumber && !numArr.get(i).equals(numArr.get(i - 1))) {
36+
maxMidNumber = numArr.get(i-1);
37+
}
38+
39+
if (numArr.get(i).equals(numArr.get(i - 1))) {
40+
numPrint.add(numArr.get(i));
41+
42+
if (i+1 < numArr.size()) {
43+
i++;
44+
}
45+
}
46+
}
47+
48+
if (numArr.size() > 1) {
49+
int last = numArr.get(numArr.size() - 1);
50+
int prevLast = numArr.get(numArr.size() - 2);
51+
52+
if (numArr.size() % 2 == 1 && last == prevLast && maxMidNumber < last || last != prevLast && maxMidNumber < last) {
53+
maxMidNumber = last;
54+
}
55+
}
56+
57+
for (Integer integer : numPrint) {
58+
out.print(integer);
59+
}
60+
61+
if (maxMidNumber > 0) {
62+
out.print(maxMidNumber);
63+
}
64+
65+
for (int i = numPrint.size()-1; i >= 0 ; i--) {
66+
out.print(numPrint.get(i));
67+
}
68+
69+
out.println();
70+
out.flush();
71+
}
72+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<h1 class="title">E. Числовой палиндром</h1>
2+
<p><b>Время: 1 сек.<br>Память: 512 Мб</b></p>
3+
<p>Числовой палиндром — целое положительное число, десятичная запись которого одинаково читается в обоих направлениях. Например, 9 и 12321 являются числовыми палиндромами, а 3434 и 1211 — нет.
4+
</p>
5+
<p>На вход программы поступает набор цифр от 1 до 9. Разрешается переставлять и удалять цифры. Требуется из данных цифр составить числовой палиндром, задающий наибольшее число.</p>
6+
<h2>Формат ввода</h2>
7+
<p>В первой строке входных данных содержится целое число N (0 &lt; N ≤ 10<sup>5</sup>). Во второй строке задается последовательность из N цифр от 1 до 9.</p>
8+
<h2>Формат вывода</h2>
9+
<p>Выведите одно целое число — максимальный числовой палиндром, составляемый из данного набора цифр.</p>
10+
<h3>Примеры</h3>
11+
<table class="sample-tests">
12+
<thead>
13+
<tr>
14+
<th>Ввод</th>
15+
<th>Вывод</th>
16+
</tr>
17+
</thead>
18+
<tbody>
19+
<tr>
20+
<td>4<br />
21+
1123</td>
22+
<td>131</td>
23+
</tr>
24+
</tbody>
25+
</table>
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<h1 class="title">B. Второй сверху</h1>
2+
<p><b>Время: 1 сек.<br>Память: 512 Мб</b></p>
3+
<p>Аналого-цифровой преобразователь получает сигналы и кодирует их в виде целых положительных чисел, после чего последовательно передаёт в систему для обработки. Конец блока сигналов кодируется числом 0.
4+
Ваша задача — определить значение второго по величине элемента в первом блоке сигналов.</p>
5+
<h2>Формат ввода</h2>
6+
<p>На вход подаётся последовательность сигналов — целые неотрицательные числа, не превосходящие 10<sup>9.
7+
Гарантируется, что в последовательности есть хотя бы одно число 0, а общее количество сигналов не превосходит 10<sup>4</sup>.</p>
8+
<h2>Формат вывода</h2>
9+
<p>Выведите ответ на задачу.</p>
10+
<h3>Примеры</h3>
11+
<table class="sample-tests">
12+
<thead>
13+
<tr>
14+
<th>Ввод</th>
15+
<th>Вывод</th>
16+
</tr>
17+
</thead>
18+
<tbody>
19+
<tr>
20+
<td>1<br />
21+
7<br />
22+
9<br />
23+
0</td>
24+
<td>7</td>
25+
</tr>
26+
</tbody>
27+
</table>
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package _other_tasks_.second_above;
2+
3+
import java.io.FileReader;
4+
import java.io.IOException;
5+
import java.io.PrintWriter;
6+
import java.util.ArrayList;
7+
import java.util.Comparator;
8+
import java.util.Scanner;
9+
10+
public class SecondAbove {
11+
public static void main(String[] args) throws IOException {
12+
FileReader file = new FileReader("input.txt");
13+
Scanner sc = new Scanner(file);
14+
15+
ArrayList<Integer> data = new ArrayList<>();
16+
17+
while (sc.hasNextLine()) {
18+
int num = Integer.parseInt(sc.nextLine());
19+
20+
if (num != 0) {
21+
data.add(num);
22+
} else {
23+
data.sort(Comparator.reverseOrder());
24+
PrintWriter out = new PrintWriter(System.out);
25+
26+
out.println(data.get(1));
27+
out.flush();
28+
}
29+
}
30+
}
31+
}

0 commit comments

Comments
 (0)