Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2014
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.31 KB | None | 0 0
  1. import java.io.InputStream;
  2. import java.io.OutputStream;
  3. import java.io.PrintStream;
  4. import java.io.PrintWriter;
  5. import java.util.ArrayList;
  6. import java.util.Collections;
  7. import java.util.List;
  8. import java.util.Scanner;
  9.  
  10. class F1Race {
  11. List<Driver> drivers;
  12.  
  13. public F1Race() {
  14.  
  15. }
  16.  
  17. public void readResults(InputStream inputStream) {
  18. drivers = new ArrayList<Driver>();
  19. Scanner input = new Scanner(inputStream);
  20. String name = null;
  21.  
  22. Driver n = null;
  23. while (input.hasNextLine()) {
  24. int lap1=0, lap2=0, lap3=0;
  25. String[] in = input.nextLine().split(" ");
  26. name = in[0];
  27. lap1=strignToInt(in[1]);
  28. lap2 = strignToInt(in[2]);
  29. lap3 = strignToInt(in[3]);
  30. n = new Driver(name, lap1, lap2, lap3);
  31. drivers.add(n);
  32.  
  33. }
  34.  
  35. }
  36.  
  37. public int strignToInt(String str) {
  38. String[] part = str.split(":");
  39. int n = Integer.parseInt(part[0]) * 60000 + Integer.parseInt(part[1])
  40. * 1000 + Integer.parseInt(part[2]);
  41. return n;
  42. }
  43.  
  44. public void printSorted(OutputStream outputStream) {
  45. PrintWriter print = new PrintWriter(outputStream);
  46. Collections.sort(drivers);
  47. int i=1;
  48. for (Driver driver : drivers) {
  49. print.printf("%d. %s",i,driver.toString());
  50. i++;
  51. }
  52. print.flush();
  53. }
  54.  
  55.  
  56. }
  57.  
  58. class Driver implements Comparable<Driver> {
  59. String name;
  60. int lap1;
  61. int lap2;
  62. int lap3;
  63.  
  64. public Driver(String name, int lap1, int lap2, int lap3) {
  65. this.name = name;
  66. this.lap1 = lap1;
  67. this.lap2 = lap2;
  68. this.lap3 = lap3;
  69. }
  70.  
  71. public int minLap() {
  72. int min = Math.min(lap1, Math.min(lap2, lap3));
  73. return min;
  74. }
  75.  
  76. @Override
  77. public int compareTo(Driver n) {
  78. if (this.minLap() == n.minLap()) {
  79. return 0;
  80. } else if (this.minLap() > n.minLap()) {
  81. return 1;
  82. } else
  83. return -1;
  84. }
  85. public String intToString(){
  86. int time=minLap();
  87. int min=(int)(time/60000)%60;
  88. int sek=(int)(time/1000)%60;
  89.  
  90. time=time-(min*60*1000+sek*1000);
  91.  
  92.  
  93. return String.format("%d:%d:%3d",min,sek,time);
  94.  
  95. }
  96.  
  97. public String toString() {
  98. return String.format("%-10s%10s\n", name,intToString());
  99.  
  100. }
  101.  
  102. }
  103.  
  104. public class F1Test {
  105.  
  106. public static void main(String[] args) {
  107. F1Race f1Race = new F1Race();
  108. f1Race.readResults(System.in);
  109. f1Race.printSorted(System.out);
  110. }
  111.  
  112. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement