This commit is contained in:
2026-04-27 20:53:53 +03:00
parent c71becc3d6
commit 9d84c20591
30 changed files with 384 additions and 0 deletions

86
2/A/Main.java Normal file
View File

@@ -0,0 +1,86 @@
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String line1 = reader.readLine();
if (line1 == null)
return;
int n = Integer.parseInt(line1.trim());
long[] a = new long[n];
StringTokenizer stA = new StringTokenizer(reader.readLine());
for (int i = 0; i < n; i++) {
a[i] = Long.parseLong(stA.nextToken());
}
int[] types = new int[n];
int[] lens = new int[n];
int[] rewards = new int[n];
StringTokenizer stB = new StringTokenizer(reader.readLine());
for (int i = 0; i < n; i++) {
types[i] = Integer.parseInt(stB.nextToken());
if (types[i] == 1) {
lens[i] = 1;
rewards[i] = 1;
} else if (types[i] == 2) {
lens[i] = 2;
rewards[i] = 3;
} else {
lens[i] = 4;
rewards[i] = 5;
}
}
for (int i = 0; i < n - 1; i++) {
if (a[i] + lens[i] >= a[i + 1]) {
System.out.println(0);
return;
}
}
int m = Integer.parseInt(reader.readLine().trim());
long[] x = new long[m];
StringTokenizer stX = new StringTokenizer(reader.readLine());
for (int i = 0; i < m; i++) {
x[i] = Long.parseLong(stX.nextToken());
}
int[] y = new int[m];
StringTokenizer stY = new StringTokenizer(reader.readLine());
for (int i = 0; i < m; i++) {
y[i] = Integer.parseInt(stY.nextToken());
}
boolean[] overcome = new boolean[n];
int obsIdx = 0;
for (int j = 0; j < m; j++) {
long jumpStart = x[j];
long jumpEnd = x[j] + y[j];
while (obsIdx < n && a[obsIdx] < jumpStart) {
obsIdx++;
}
int tempIdx = obsIdx;
while (tempIdx < n && a[tempIdx] + lens[tempIdx] <= jumpEnd) {
overcome[tempIdx] = true;
tempIdx++;
}
}
long totalScore = 0;
for (int i = 0; i < n; i++) {
if (overcome[i]) {
totalScore += rewards[i];
} else {
totalScore -= 1;
}
}
System.out.println(Math.max(0, totalScore));
}
}

107
2/A/README.md Normal file
View File

@@ -0,0 +1,107 @@
# A. Дино в комьютерной игре
Дино решил поучаствовать в бета-тестировании игры "Бег с препятствиями". Оказалось, что игра очень сырая и совсем не готов графический интерфейс. Дино решил поиграть в игру, совершая прыжки "вслепую" - без визуального отображения дорожки с препятствиями, следуя указаниям игры.
Дино совершает прыжки следуя указаниям. Нужно подсчитать, сколько очков заработал Дино, учитывая его прыжки и конфигурацию трассы. Если трасса содержит ошибки, то результатом будет **0 очков**.
Правила игры:
- Как играет Дино
- прыгает моментально по команде;
- может прыгнуть моментально после приземления;
- получает очки за каждое успешно преодоленное препятствие (даже если за один прыжок преодолевает несколько препятствий);
- не может подпрыгнуть в воздухе - чтобы прыгнуть еще раз, ему нужно сначала приземлиться;
- Дино **не просят** подпрыгивать в полете;
- Получение очков:
- за преодоление **камня** (длина препятствия **1 м**) - **1 очко**;
- за преодоление **бревна** (длина препятствия **2 м**) - **3 очка**;
- за преодоление **ямы** (длина препятствия **4 м**) - **5 очков**;
- Потеря очков:
- если Дино неправильно преодолеет любое препятствие, у него отнимут одно очко за каждое такое препятствие;
- итоговое количество очков не может быть меньше 0;
- Успешное преодоление препятствия:
- Дино начинает прыжок не позже появления препятствия (допустимо одновременно с наступанием препятствиями);
- чтобы преодолеть препятствие - нужны прыгнуть на расстояние большее или равное длине препятствия;
- прыжок Дино покрывает всю длину препятствия (допустимо, если он перепрыгнет препятствие или начнет прыжок раньше);
- Трасса считается некоректной, если:
- препятствие пересекаются или касаются (одно препятствие еще не закончилось, а следующее еще не началось);
## Формат ввода
- в первой строке число - количество препятствий на игровой дорожке `n < 10^5`;
- во второй строке список неубывающих `n` натуральных чисел: `a_1, a_2, ..., a_n` (1 <= a_i <= 10^6) - координаты начала препятствий;
- третья строка содержит `n` натуральных чисел: `b_1, b_2, ..., b_n` (`1 <= b_i <= 3`) типы каждого препятствия:
- 1 -> **камень**;
- 2 -> **бревно**;
- 3 -> **яма**;
- в четвертой строке - количество прыжков Дино `m < 10^5`;
- пятая строка содержит список неубывающих `m` натуральных чисел: `x_1, x_2, ..., x_m` (`1 <= x_i < 10^6`) - координаты начала прыжков Дино;
- в шестой строке находятся `m` натуральных чисел - дальности прыжков Дино: `y_1, y_2, ..., y_m` (`y_i in [1, 2, 4]`);
## Формат вывода
Вывести целое число - результат Дино после прохождения трассы. Если трасса невалидна - вывести **0**.
## Пример 1
Ввод
```
5
10 15 20 25 27
3 1 2 1 1
4
9 14 20 25
1 2 4 4
```
Вывод
```
5
```
## Пример 2
Ввод
```
3
10 11 12
2 1 2
2
9 12
2 2
```
Вывод
```
0
```
## Пример 3
Ввод
```
2
14 15
3 1
2
9 12
2 2
```
Вывод
```
0
```

6
2/A/test1.in Normal file
View File

@@ -0,0 +1,6 @@
5
10 15 20 25 27
3 1 2 1 1
4
9 14 20 25
1 2 4 4

6
2/A/test2.in Normal file
View File

@@ -0,0 +1,6 @@
3
10 11 12
2 1 2
2
9 12
2 2

6
2/A/test3.in Normal file
View File

@@ -0,0 +1,6 @@
2
14 15
3 1
2
9 12
2 2