import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
raceStart();
}
public static void raceStart(){
Scanner scanner = new Scanner(System.in);
ArrayList allCompetitors = new ArrayList<>();
for (int i=1; i<=3; i++){
System.out.println("ÐведиÑе название маÑÐ¸Ð½Ñ â" + i +"\"");
String userInputBrand = scanner.next();//ÑÑиÑÑвание ÑÑÑоки до пÑобела
String userInputSpeed = "";
int speed = 0;
while (!checkSpeedValue(speed) || !tryParse(userInputSpeed)) {
System.out.println("ÐведиÑе ÑкоÑоÑÑÑ Ð¼Ð°ÑÐ¸Ð½Ñ â" + i + "\"");
userInputSpeed = scanner.next();
speed = tryParse(userInputSpeed)?Integer.parseInt(userInputSpeed): 0;
if(!checkSpeedValue(speed) || !tryParse(userInputSpeed)) {
System.out.println("ÐепÑавилÑÐ½Ð°Ñ ÑкоÑоÑÑÑ");
}
}
allCompetitors.add(new Car(userInputBrand,speed));
}
scanner.close();
Race winner = new Race();
winner.calculateWhoIsWinner(allCompetitors);
}
public static boolean tryParse (String speed) {
try {
Integer.parseInt(speed);
return true;
} catch (NumberFormatException e) {
return false;
}
}
public static boolean checkSpeedValue(int speed) {
return (speed > 0 && speed <= 250) ? true : false;
}
}
class Car {
public String carBrand;
public int speedValue;
public Car (String carBrand, int speedValue) {
this.carBrand = carBrand;
this.speedValue = speedValue;
}
}
class Race {
public Car leader;
public int completedWay;
public Race (Car leader, int completedPath) {
this.leader = leader;
this.completedWay = completedPath;
}
public Race(){
}
public void calculateWhoIsWinner(ArrayList allCompetitors) {
//ÐлиÑелÑноÑÑÑ Ð³Ð¾Ð½ÐºÐ¸ ÑоÑÑавлÑÐµÑ 24 ÑаÑа. ÐзвеÑÑна ÑкоÑоÑÑÑ. ÐеобÑ
одимо найÑи пÑойденнÑй пÑÑÑ.
//РаÑÑÑиÑÑваем полÑÑеннÑе ÑезÑлÑÑаÑÑ Ð³Ð¾Ð½Ñиков и добавлÑем иÑ
в leadersList.
ArrayList leadersList = new ArrayList<>();
for (Car racerCar : allCompetitors) {
leadersList.add(new Race(racerCar, racerCar.speedValue * 24));
}
//С помоÑÑÑ Iterator ÑдалÑем ÑлеменÑÑ ÑдовлеÑвоÑÑÑÑие ÑÑÐ»Ð¾Ð²Ð¸Ñ way > element.completedWay.
//Таким обÑазом полÑÑаем ÑпиÑок, коÑоÑÑй ÑодеÑÐ¶Ð¸Ñ Ð¿Ð¾Ð±ÐµÐ´Ð¸ÑелÑ(-ей) гонки.
for (Car racerCar : allCompetitors) {
int way = racerCar.speedValue*24;
Iterator iterator = leadersList.iterator();
while (iterator.hasNext()) {
Race element = iterator.next();
if (way > element.completedWay) {
iterator.remove();
}
}
}
//ÐÑвод ÑезÑлÑÑаÑов гонки.
if (leadersList.size() == 1) {
System.out.println("Ð¡Ð°Ð¼Ð°Ñ Ð±ÑÑÑÑÐ°Ñ Ð¼Ð°Ñина: " + leadersList.getFirst().leader.carBrand);
} else if (leadersList.size() >= 2) {
System.out.println(leadersList.size() + " маÑÐ¸Ð½Ñ Ð¿ÑибÑли Ñ Ð¾Ð´Ð¸Ð½Ð°ÐºÐ¾Ð²Ñм ÑезÑлÑÑаÑом:");
for (Race leader : leadersList) {
System.out.println(leader.leader.carBrand);
}
} else {
System.out.println("ÐобедиÑÐµÐ»Ñ Ð¾Ð¿ÑеделиÑÑ Ð½Ðµ ÑдалоÑÑ");
}
}
}