Skip to content

Commit a54a012

Browse files
committed
Добавлена задача №733.
1 parent 81edb88 commit a54a012

File tree

3 files changed

+79
-0
lines changed

3 files changed

+79
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,7 @@
296296
<li><a href="https://github.com/allicen/Java-10000/tree/master/military_base" target="_blank">Военная база</a> (32%)</li>
297297
<li><a href="https://github.com/allicen/Java-10000/tree/master/birthday_two" target="_blank">День рождения - 2</a> (32%)</li>
298298
<li><a href="https://github.com/allicen/Java-10000/tree/master/playing_with_pebbles" target="_blank">Игра с камешками</a> (32%)</li>
299+
<li><a href="https://github.com/allicen/Java-10000/tree/master/sequence_two" target="_blank">Последовательность - 2</a> (32%)</li>
299300
<li><a href="https://github.com/allicen/Java-10000/tree/master/poker" target="_blank">Покер</a> (33%)</li>
300301
<li><a href="https://github.com/allicen/Java-10000/tree/master/java_vs_pcc" target="_blank">Волосатый бизнес</a> (34%)</li>
301302
</ol>

sequence_two/README.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<h1 class="title">Последовательность - 2 (32%)</h1>
2+
<p><a href="https://acmp.ru/index.asp?main=task&id_task=733" target="_blank">Ссылка на задачу</a></p>
3+
<p><b>Время: 1 сек.<br>Память: 16 Мб<br>Сложность: 32%</b></p>
4+
<p class="text">
5+
Вася написал на доске n целых чисел a<sub>i</sub> и ушел. Пришел Петя и, увидев Васину последовательность, решил ее немного изменить. Для этого он решил, что может стирать с доски лишь те числа, у которых имеются слева и справа элементы, превосходящие их. Формально, Петя может стереть число a<sub>k</sub>, если существуют значения a<sub>i</sub> и a<sub>j</sub> такие, что a<sub>i</sub> &gt; a<sub>k</sub> и a<sub>j</sub> &gt; a<sub>k</sub> и i &lt; k &lt; j. Когда на доске не осталось чисел, которые мог стереть Петя, он ушел.
6+
</p>
7+
<p class="text">
8+
Пришел Вася и очень удивился увиденному. Напишите программу, которая выводит последовательность, которую увидел Вася.
9+
</p>
10+
<h2>Формат ввода</h2>
11+
<p class="text">
12+
Первая строка входного файла INPUT.TXT содержит целое число n (1 ≤ n ≤ 10 000) - количество чисел. Следующая строка содержит n разделенных пробелом целых чисел a<sub>i</sub> (-10<sup>6</sup> ≤ a<sub>i</sub> ≤ 10<sup>6</sup>) - записанные на доске числа.
13+
</p>
14+
<h2>Формат вывода</h2>
15+
<p class="text">
16+
В первой строке выходного файла OUTPUT.TXT выведите целое число k - количество оставшихся на доске чисел. На следующей строке выведите k чисел b<sub>i</sub> - оставшиеся на доске числа.
17+
</p>
18+
<h3>Примеры</h3>
19+
<table class="sample-tests">
20+
<thead>
21+
<tr>
22+
<th>Ввод</th>
23+
<th>Вывод</th>
24+
</tr>
25+
</thead>
26+
<tbody>
27+
<tr>
28+
<td>12<br>
29+
1 2 3 2 4 1 3 4 2 3 2 1</td>
30+
<td>8<br>
31+
1 2 3 4 4 3 2 1</td>
32+
</tr>
33+
</tbody>
34+
</table>

sequence_two/SequenceTwo.java

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package sequence_two;
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.Scanner;
8+
9+
public class SequenceTwo {
10+
public static void main(String[] args) throws IOException {
11+
Scanner sc = new Scanner(new FileReader("input.txt"));
12+
int n = Integer.parseInt(sc.nextLine());
13+
String[] line = sc.nextLine().split(" ");
14+
ArrayList<Integer> numbers = new ArrayList<>();
15+
16+
for (String number : line) {
17+
numbers.add(Integer.parseInt(number));
18+
}
19+
20+
int leftMax = -1000000;
21+
22+
for (int i = 0; i < numbers.size(); i++) {
23+
if (leftMax < numbers.get(i)) {
24+
leftMax = numbers.get(i);
25+
}
26+
if (i > 0 && i+1 < numbers.size()) {
27+
for (int k = i+1; k < numbers.size(); k++) {
28+
if (numbers.get(i) < leftMax && numbers.get(i) < numbers.get(k)) {
29+
numbers.remove(i);
30+
i--;
31+
break;
32+
}
33+
}
34+
}
35+
}
36+
37+
PrintWriter out = new PrintWriter(System.out);
38+
out.println(numbers.size());
39+
for (int number : numbers) {
40+
out.print(number + " ");
41+
}
42+
out.flush();
43+
}
44+
}

0 commit comments

Comments
 (0)