Напишите программу для решения следующей задачи на C++ (и, если возможно, на Pascal). Камера наблюдения регистрирует в автоматическом режиме скорость проезжающих мимо нее автомобилей, округляя значение скорости до целых чисел. Необходимо определить минимальную зарегистрированную скорость автомобиля. Если скорость хотя бы одного автомобиля была больше 80 км/ч, выведите "YES", иначе выведите "NO". Программа получает на вход число проехавших автомобилей N (1≤N≤30), затем указываются их скорости. Значение скорости не может быть меньше 1 и больше 300. Программа должна сначала вывести минимальную скорость, затем YES или NO.
Ответы на вопрос
Для решения задачи необходимо найти минимальную скорость среди всех зарегистрированных автомобилей, а также проверить, была ли скорость хотя бы одного автомобиля строго больше 80 км/ч.
Приведу решения на двух языках программирования: C++ и Pascal.
1. Решение на 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
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. Объяснение алгоритма
Считываем количество автомобилей
N.Создаём переменную
minSpeed, в которой будем хранить минимальную скорость. Первоначально присваиваем ей значение 301, поскольку максимальная возможная скорость по условию равна 300.Создаём логическую переменную
flag, первоначально равнуюfalse. Она показывает, встретилась ли скорость больше 80 км/ч.С помощью цикла считываем скорости всех
Nавтомобилей.Если очередная скорость меньше
minSpeed, обновляем минимальное значение.Если очередная скорость больше 80, присваиваем
flagзначениеtrue.После завершения цикла выводим минимальную скорость, а затем
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.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili

