import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;
record Car(String name, int speed) {}
class Race {
public static ArrayList race (ArrayList cars) {
//ArrayList на ÑлÑÑай, еÑли бÑдÑÑ Ð¿Ð¾Ð±ÐµÐ´Ð¸Ñели Ñ Ð¾Ð´Ð¸Ð½Ð°ÐºÐ¾Ð²Ð¾Ð¹ ÑкоÑоÑÑÑÑ
Car leader = new Car("default", 0);
ArrayList winners = new ArrayList<>();
for (Car car : cars) {
if (car.speed() * 24 == leader.speed() * 24) {
winners.add(car);
}
if (car.speed() * 24 > leader.speed() * 24) {
winners.clear();
winners.add(car);
leader = car;
}
}
return winners;
}
}
public class Main {
public static boolean contains (ArrayList cars, String name) {
for (Car car : cars) {
if (name.equals(car.name())) {
return true;
}
}
return false;
}
public static void main(String[] args) {
/*ÐонимаÑ, ÑÑо код вÑглÑÐ´Ð¸Ñ Ð±ÐµÑÑмÑÑленно ÑложнÑм, но Ñ Ñ
оÑел оÑÑабоÑаÑÑ Ð²Ñе изÑÑеннÑе
навÑки и даже болÑÑе. ÐÑÑÑко кайÑанÑл, пока пиÑал его
*/
ArrayList cars = new ArrayList<>();
int carCounter = 0;
while (true) {
System.out.format("ÐведиÑе название маÑÐ¸Ð½Ñ %d и ÐµÑ ÑкоÑоÑÑÑ (Ð¾Ñ 1 до 250 вклÑÑиÑелÑно): ",
carCounter + 1);
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
String[] nameAndSpeed = input.split(" ");
if (nameAndSpeed.length != 2) {
System.out.println("ÐекоÑÑекÑнÑй ввод");
} else {
String name = nameAndSpeed[0];
if (contains(cars, name)) {
System.out.println("ÐаÑина Ñ Ñаким названием Ñже ÑÑÑеÑÑвÑеÑ");
} else {
/*ÐбÑабоÑка оÑибки ввода, поÑÐ¾Ð¼Ñ ÑÑо Ñ
оÑÑ, ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð²Ð²Ð¾Ð´Ð¸Ð» даннÑе о
названии маÑÐ¸Ð½Ñ Ð¸ ÑкоÑоÑÑи в Ð¾Ð´Ð½Ñ ÑÑÑокÑ. ÐÑи конвеÑÑаÑии из String в int
Ð¼Ð¾Ð¶ÐµÑ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½ÑÑÑ NumberFormatException
*/
try {
int speed = Integer.parseInt(nameAndSpeed[1]);
if (speed > 0 && speed <= 250) {
Car car = new Car(name, speed);
cars.add(car);
carCounter++;
System.out.format("ÐаÑина %s Ñо ÑкоÑоÑÑÑÑ %d добавлена ÑÑпеÑно\n", name, speed);
} else {
System.out.println("Ðведена невеÑÐ½Ð°Ñ ÑкоÑоÑÑÑ");
}
} catch (NumberFormatException nfe) {
System.out.println("ÐекоÑÑекÑÐ½Ð°Ñ ÑкоÑоÑÑÑ");
}
}
}
if (carCounter == 3) {
System.out.println("ÐÑе маÑÐ¸Ð½Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ñ ÑÑпеÑно");
for (Car car : cars) {
System.out.format("ÐаÑина %s Ñо ÑкоÑоÑÑÑÑ %d пÑоеÑ
ала %d киломеÑÑов\n",
car.name(), car.speed(), car.speed() * 24);
}
ArrayList winners = Race.race(cars);
Iterator iterator = winners.iterator();
//ÐÑеÑаÑÐ¾Ñ ÑиÑÑо Ð´Ð»Ñ ÑазнообÑазиÑ
while (iterator.hasNext()) {
Car winner = iterator.next();
System.out.format("Ðобедила маÑина %s Ñо ÑкоÑоÑÑÑÑ %d, она пÑоеÑ
ала %d киломеÑÑов\n",
winner.name(), winner.speed(), winner.speed() * 24);
//ÐпÑÑÑ Ð¶Ðµ Ñикл на ÑлÑÑай множеÑÑвеннÑÑ
победиÑелей Ñ Ð¾Ð´Ð¸Ð½Ð°ÐºÐ¾Ð²Ð¾Ð¹ ÑкоÑоÑÑÑÑ
}
break;
}
}
}
}