Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2014
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.08 KB | None | 0 0
  1. import java.io.IOException;
  2. import java.io.InputStream;
  3. import java.io.OutputStream;
  4. import java.io.PrintStream;
  5. import java.util.ArrayList;
  6. import java.util.Arrays;
  7. import java.util.Scanner;
  8.  
  9. public class F1Test {
  10.  
  11.     public static void main(String[] args) throws IOException {
  12.         F1Race f1Race = new F1Race();
  13.         f1Race.readResults(System.in);
  14.         f1Race.printSorted(System.out);
  15.     }
  16.  
  17. }
  18.  
  19. class Driver{
  20.     String name;
  21.     String lap1;
  22.     String lap2;
  23.     String lap3;
  24.     public Driver(String name, String lap1, String lap2, String lap3) {
  25.         super();
  26.         this.name = name;
  27.         this.lap1 = lap1;
  28.         this.lap2 = lap2;
  29.         this.lap3 = lap3;
  30.     }
  31.    
  32.    
  33. }
  34. class F1Race{
  35.     ArrayList<Driver> niza;
  36.    
  37.     public F1Race()
  38.     {
  39.         niza=new ArrayList<Driver>();
  40.     }
  41.    
  42.     public void readResults(InputStream inputStream)
  43.     {
  44.         Scanner vnesi=new Scanner(inputStream);
  45.        
  46.         while(vnesi.hasNextLine())
  47.         {
  48.             String pom=vnesi.nextLine();
  49.             String [] kraj=pom.split(" ");
  50.             String n=kraj[0];
  51.             String l1=kraj[1];
  52.             String l2=kraj[2];
  53.             String l3=kraj[3];
  54.             Driver nov=new Driver(n,l1,l2,l3);
  55.             niza.add(nov);
  56.            
  57.         }
  58.         vnesi.close();
  59.        
  60.     }
  61.     public void printSorted(OutputStream outputStream)
  62.     {
  63.         PrintStream nov=new PrintStream(outputStream);
  64.         String [] pole=new String[niza.size()];
  65.         String [] krug=new String[niza.size()];
  66.         int k=0;
  67.         for(int i=0;i<niza.size();i++)
  68.         {
  69.             krug[k]=sortiraj(niza.get(i).lap1,niza.get(i).lap2,niza.get(i).lap3);
  70.             k++;
  71.         }
  72.         int t=0;
  73.         for(int h=0;h<niza.size();h++)
  74.         {
  75.             pole[t]=niza.get(h).name;
  76.             t++;
  77.         }
  78.         String pom=null;
  79.         String pom1=null;
  80.         for(int j=0;j<k;j++)
  81.         {
  82.             for(int p=j+1;p<k;p++)
  83.             {
  84.                 if(pomala(krug[p],krug[j]))
  85.                 {
  86.                     pom=krug[j];
  87.                     krug[j]=krug[p];
  88.                     krug[p]=pom;
  89.                    
  90.                     pom1=pole[j];
  91.                     pole[j]=pole[p];
  92.                     pole[p]=pom1;
  93.                 }
  94.             }
  95.         }
  96.        
  97.         for(int i=0;i<pole.length;i++)
  98.         {
  99.             nov.print(i+1);
  100.             nov.flush();
  101.             nov.print(". ");
  102.             nov.flush();
  103.             nov.print(String.format("%-10s", pole[i]));
  104.             nov.flush();
  105.             nov.print(String.format("%10s", krug[i]));
  106.             nov.flush();
  107.             nov.println("");
  108.            
  109.         }
  110.    
  111.         nov.close();
  112.        
  113.     }
  114.     public String sortiraj(String l1,String l2,String l3)
  115.     {
  116.         String [] r1=l1.split(":");
  117.         String [] r2=l2.split(":");
  118.         String [] r3=l3.split(":");
  119.         int rez1=(Integer.parseInt(r1[0])*60000)+(Integer.parseInt(r1[1])*1000)+(Integer.parseInt(r1[2]));
  120.         int rez2=(Integer.parseInt(r2[0])*60000)+(Integer.parseInt(r2[1])*1000)+(Integer.parseInt(r2[2]));
  121.         int rez3=(Integer.parseInt(r3[0])*60000)+(Integer.parseInt(r3[1])*1000)+(Integer.parseInt(r3[2]));
  122.         if(rez1<rez2 && rez1<rez3)
  123.             return l1;
  124.         else if(rez2<rez1 && rez2<rez3)
  125.             return l2;
  126.         else
  127.             return l3;
  128.    
  129.     }
  130.    
  131.     public boolean pomala(String l1,String l2)
  132.     {
  133.         String [] r1=l1.split(":");
  134.         String [] r2=l2.split(":");
  135.         int rez1=(Integer.parseInt(r1[0])*60000)+(Integer.parseInt(r1[1])*1000)+(Integer.parseInt(r1[2]));
  136.         int rez2=(Integer.parseInt(r2[0])*60000)+(Integer.parseInt(r2[1])*1000)+(Integer.parseInt(r2[2]));
  137.         if(rez1<rez2)
  138.             return true;
  139.         else
  140.             return false;
  141.        
  142.     }
  143. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement