import java.util.Scanner;
import java.util.HashSet;
import java.util.Set;
import java.util.List;
class Main
{
private static final int CONFIG_CARS_COUNT = 3;
private static final int CONFIG_MIN_SPEED = 1;
private static final int CONFIG_MAX_SPEED = 250;
public static void main(String[] args)
{
Scanner scanner = new Scanner(System.in);
Race race = new Race();
Set usedNames = new HashSet<>();
for (int i = 1; i <= CONFIG_CARS_COUNT; i++)
{
String carName = readCarName(scanner, i, usedNames);
int carSpeed = readCarSpeed(scanner, carName);
Car car = new Car(carName, carSpeed);
race.addCarLead(car);
}
List winners = race.getLeaders();
if (winners.size() == 1)
{
System.out.println("Ð¡Ð°Ð¼Ð°Ñ Ð±ÑÑÑÑÐ°Ñ Ð¼Ð°Ñина: " + winners.get(0).getNameCar());
} else
{
System.out.println("СамÑе бÑÑÑÑÑе маÑинÑ:");
for (Car winner : winners)
{
System.out.println(winner.getNameCar());
}
}
}
private static String readCarName(Scanner scanner, int carNumber, Set usedNames)
{
while (true)
{
System.out.print("ÐведиÑе название авÑÐ¾Ð¼Ð¾Ð±Ð¸Ð»Ñ â" + carNumber + ": ");
String inputName = scanner.nextLine().trim();
if (inputName.isEmpty())
{
System.out.println("ÐÑибка: название авÑÐ¾Ð¼Ð¾Ð±Ð¸Ð»Ñ Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿ÑÑÑÑм.");
continue;
}
String tryCarName = inputName.toLowerCase();
if (usedNames.contains(tryCarName))
{
System.out.println("ÐÑибка: Ñакое название Ñже введено. ÐведиÑе ÑникалÑное название.");
continue;
}
usedNames.add(tryCarName);
return inputName;
}
}
private static int readCarSpeed(Scanner scanner, String carName)
{
while (true)
{
System.out.print("ÐведиÑе ÑкоÑоÑÑÑ Ð°Ð²ÑÐ¾Ð¼Ð¾Ð±Ð¸Ð»Ñ \"" + carName + "\" (Ð¾Ñ "
+ CONFIG_MIN_SPEED + " до " + CONFIG_MAX_SPEED + "): ");
String inputSpeed = scanner.nextLine().trim();
if (inputSpeed.isEmpty())
{
System.out.println("ÐÑибка: ÑкоÑоÑÑÑ Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿ÑÑÑой.");
continue;
}
try
{
int speed = Integer.parseInt(inputSpeed);
if (speed < CONFIG_MIN_SPEED || speed > CONFIG_MAX_SPEED)
{
System.out.println("ÐÑибка: ÑкоÑоÑÑÑ Ð´Ð¾Ð»Ð¶Ð½Ð° бÑÑÑ Ð² диапазоне Ð¾Ñ "
+ CONFIG_MIN_SPEED + " до " + CONFIG_MAX_SPEED + ".");
continue;
}
return speed;
} catch (NumberFormatException e)
{
System.out.println("ÐÑибка: введиÑе Ñелое ÑиÑло.");
}
}
}
}