Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.OutputStream;
- import java.io.PrintWriter;
- import java.nio.charset.Charset;
- import java.util.Scanner;
- public class F1Test {
- public static void main(String[] args) {
- F1Race f1Race = new F1Race();
- f1Race.readResults(System.in);
- f1Race.printSorted(System.out);
- }
- }
- class LapTime
- {
- private int minutes;
- private int seconds;
- private int miliseconds;
- public LapTime(String input)
- {
- minutes = Integer.parseInt(input.substring(0,1));
- seconds = Integer.parseInt(input.substring(2,4));
- miliseconds = Integer.parseInt(input.substring(5,8));
- }
- public String toString()
- {
- return String.format("%d:%02d:%03d", minutes,seconds,miliseconds);
- }
- public Integer returnRawTime()
- {
- return miliseconds + 1000*seconds + 60000*minutes;
- }
- }
- class F1Driver
- {
- private String name;
- private LapTime l1,l2,l3,best;
- public F1Driver(String n, LapTime lap1, LapTime lap2, LapTime lap3)
- {
- name = n;
- l1 = lap1;
- best = l1;
- l2 = lap2;
- if(l2.returnRawTime() < best.returnRawTime())
- best = l2;
- l3 = lap3;
- if(l3.returnRawTime() < best.returnRawTime())
- best = l3;
- }
- public LapTime getBestLap()
- {
- return best;
- }
- public int compareTo(F1Driver pero)
- {
- return best.returnRawTime().compareTo(pero.getBestLap().returnRawTime());
- }
- public String toString()
- {
- return String.format("%-10s%10s", name,best.toString());
- }
- }
- class F1Race {
- private F1Driver[] drivers;
- int length;
- private void resize()
- {
- F1Driver[] temp = new F1Driver[length];
- for(int i = 0 ; i < length ; ++i)
- temp[i] = drivers[i];
- drivers = new F1Driver[length*2];
- for(int i = 0 ; i < length ; ++i)
- drivers[i] = temp[i];
- }
- public F1Race()
- {
- drivers = new F1Driver[1];
- length = 0;
- }
- public void readResults(InputStream inputStream)
- {
- Scanner in = new Scanner(inputStream);
- while(in.hasNext())
- {
- String n = in.next();
- String l1 = in.next();
- String l2 = in.next();
- String l3 = in.next();
- if(length == drivers.length)
- resize();
- drivers[length++] = new F1Driver(n,new LapTime(l1),new LapTime(l2),new LapTime(l3));
- }
- in.close();
- }
- void printSorted(OutputStream outputStream)
- {
- for(int i = 0 ; i < length ; ++i)
- for(int j = i+1 ; j < length ; ++j)
- if(drivers[i].compareTo(drivers[j]) > 0)
- {
- F1Driver temp = drivers[i];
- drivers[i] = drivers[j];
- drivers[j] = temp;
- }
- PrintWriter pw = new PrintWriter(outputStream);
- for(int i = 0 ; i < length ; ++i)
- pw.println((i+1) + ". " + drivers[i].toString());
- pw.close();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement