Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.InputStream;
- import java.io.OutputStream;
- import java.io.PrintStream;
- import java.io.PrintWriter;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.List;
- import java.util.Scanner;
- class F1Race {
- List<Driver> drivers;
- public F1Race() {
- }
- public void readResults(InputStream inputStream) {
- drivers = new ArrayList<Driver>();
- Scanner input = new Scanner(inputStream);
- String name = null;
- Driver n = null;
- while (input.hasNextLine()) {
- int lap1=0, lap2=0, lap3=0;
- String[] in = input.nextLine().split(" ");
- name = in[0];
- lap1=strignToInt(in[1]);
- lap2 = strignToInt(in[2]);
- lap3 = strignToInt(in[3]);
- n = new Driver(name, lap1, lap2, lap3);
- drivers.add(n);
- }
- }
- public int strignToInt(String str) {
- String[] part = str.split(":");
- int n = Integer.parseInt(part[0]) * 60000 + Integer.parseInt(part[1])
- * 1000 + Integer.parseInt(part[2]);
- return n;
- }
- public void printSorted(OutputStream outputStream) {
- PrintWriter print = new PrintWriter(outputStream);
- Collections.sort(drivers);
- int i=1;
- for (Driver driver : drivers) {
- print.printf("%d. %s",i,driver.toString());
- i++;
- }
- print.flush();
- }
- }
- class Driver implements Comparable<Driver> {
- String name;
- int lap1;
- int lap2;
- int lap3;
- public Driver(String name, int lap1, int lap2, int lap3) {
- this.name = name;
- this.lap1 = lap1;
- this.lap2 = lap2;
- this.lap3 = lap3;
- }
- public int minLap() {
- int min = Math.min(lap1, Math.min(lap2, lap3));
- return min;
- }
- @Override
- public int compareTo(Driver n) {
- if (this.minLap() == n.minLap()) {
- return 0;
- } else if (this.minLap() > n.minLap()) {
- return 1;
- } else
- return -1;
- }
- public String intToString(){
- int time=minLap();
- int min=(int)(time/60000)%60;
- int sek=(int)(time/1000)%60;
- time=time-(min*60*1000+sek*1000);
- return String.format("%d:%d:%3d",min,sek,time);
- }
- public String toString() {
- return String.format("%-10s%10s\n", name,intToString());
- }
- }
- public class F1Test {
- public static void main(String[] args) {
- F1Race f1Race = new F1Race();
- f1Race.readResults(System.in);
- f1Race.printSorted(System.out);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement