Вопрос задан 24.10.2026 в 19:57. Предмет Информатика. Спрашивает Тюлюбаев Мирас.

Напишите программу для решения следующей задачи на C++ (и, если возможно, на Pascal). Камера наблюдения регистрирует в автоматическом режиме скорость проезжающих мимо нее автомобилей, округляя значение скорости до целых чисел. Необходимо определить минимальную зарегистрированную скорость автомобиля. Если скорость хотя бы одного автомобиля была больше 80 км/ч, выведите "YES", иначе выведите "NO". Программа получает на вход число проехавших автомобилей N (1≤N≤30), затем указываются их скорости. Значение скорости не может быть меньше 1 и больше 300. Программа должна сначала вывести минимальную скорость, затем YES или NO.

Перейти к ответам

Ответы на вопрос

Отвечает Стахов Броніслав.

Для решения задачи необходимо найти минимальную скорость среди всех зарегистрированных автомобилей, а также проверить, была ли скорость хотя бы одного автомобиля строго больше 80 км/ч.

Приведу решения на двух языках программирования: C++ и Pascal.

1. Решение на C++

C++

#include 
using namespace std;

int main() { int N, x, minSpeed = 301; bool flag = false;

cin >> N;

for (int i = 0; i < N; i++) { cin >> x;

if (x < minSpeed) { minSpeed = x; }

if (x > 80) { flag = true; } }

cout << minSpeed << endl;

if (flag) { cout << "YES"; } else { cout << "NO"; }

return 0; }

2. Решение на Pascal

pascal
program SpeedCamera; var N, i, x, minSpeed: integer; flag: boolean; begin readln(N); minSpeed := 301; flag := false; for i := 1 to N do begin read(x); if x < minSpeed then minSpeed := x; if x > 80 then flag := true; end; writeln(minSpeed); if flag then writeln('YES') else writeln('NO'); end.

3. Объяснение алгоритма

  1. Считываем количество автомобилей N.

  2. Создаём переменную minSpeed, в которой будем хранить минимальную скорость. Первоначально присваиваем ей значение 301, поскольку максимальная возможная скорость по условию равна 300.

  3. Создаём логическую переменную flag, первоначально равную false. Она показывает, встретилась ли скорость больше 80 км/ч.

  4. С помощью цикла считываем скорости всех N автомобилей.

  5. Если очередная скорость меньше minSpeed, обновляем минимальное значение.

  6. Если очередная скорость больше 80, присваиваем flag значение true.

  7. После завершения цикла выводим минимальную скорость, а затем YES, если flag = true, или NO в противном случае.

Важно: скорость ровно 80 км/ч не считается превышением, потому что по условию требуется проверить именно x > 80, а не x >= 80.

4. Примеры работы программы

Пример 1

Входные данные:

Обычный текст
5 60 75 90 45 80

Выходные данные:

Обычный текст
45 YES

Объяснение: минимальная скорость равна 45 км/ч. Один автомобиль двигался со скоростью 90 км/ч, что больше 80, поэтому программа выводит YES.

Пример 2

Входные данные:

Обычный текст
4 50 70 80 65

Выходные данные:

Обычный текст
50 NO

Объяснение: минимальная скорость равна 50 км/ч. Ни один автомобиль не двигался быстрее 80 км/ч, поэтому выводится NO.

Пример 3

Входные данные:

Обычный текст
1 120

Выходные данные:

Обычный текст
120 YES

Объяснение: зарегистрирован только один автомобиль, поэтому его скорость одновременно является минимальной. Поскольку 120 больше 80, выводится YES.

5. Сложность алгоритма

  • Временная сложность — O(N), поскольку скорости всех автомобилей просматриваются ровно один раз.

  • Дополнительная память — O(1), поскольку программа использует только несколько переменных и не сохраняет все скорости в массиве.

Итог: оба решения полностью соответствуют условию задачи, работают при 1 ≤ N ≤ 30 и выводят сначала минимальную зарегистрированную скорость, а затем YES или NO.

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос