Advertisement
Guest User

Untitled

a guest
Feb 25th, 2018
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.89 KB | None | 0 0
  1. import java.util.*;
  2. import java.io.*;
  3.  
  4. public class reststops {
  5.     public static void main(String[] args) throws IOException {
  6.         BufferedReader br = new BufferedReader(new FileReader("reststops.in"));
  7.         PrintWriter pw = new PrintWriter(new FileWriter("reststops.out"));
  8.         StringTokenizer st = new StringTokenizer(br.readLine());
  9.  
  10.         int n = Integer.parseInt(st.nextToken());
  11.         int reststops = Integer.parseInt(st.nextToken());
  12.         int fjspeed = Integer.parseInt(st.nextToken());
  13.         int bspeed = Integer.parseInt(st.nextToken());
  14.  
  15.         int[] maxRests = new int[n];
  16.         int[] bessSpeeds = new int[n];
  17.         int[] rests = new int[n];
  18.  
  19.         for(int x = 0; x<reststops; x++){
  20.             st = new StringTokenizer(br.readLine());
  21.             int res = Integer.parseInt(st.nextToken());
  22.             int tast = Integer.parseInt(st.nextToken());
  23.             rests[res] = tast;
  24.         }
  25.  
  26.         int restmax = -1;
  27.         for(int x = n-1; x>=0; x--){
  28.            if(rests[x] > 0){
  29.                if(rests[x] > restmax){
  30.                    maxRests[x] = rests[x];
  31.                    restmax = rests[x];
  32.                }
  33.                else{
  34.                    maxRests[x] = restmax;
  35.                }
  36.            }
  37.         }
  38.  
  39.         int fjtrack = 0;
  40.         int btrack = 0;
  41.         int tasti = 0;
  42.         /*pw.println(Arrays.toString(maxRests));
  43.         pw.println(Arrays.toString(rests));*/
  44.  
  45.         for(int x = 1; x<n; x++){
  46.             fjtrack+=fjspeed;
  47.             btrack+=bspeed;
  48.             //pw.println(fjtrack + " " + btrack);
  49.             if(rests[x] > 0){
  50.                 if(maxRests[x] == rests[x]) { // if it is a maxrest
  51.                     tasti += rests[x] * (Math.abs(btrack-fjtrack));
  52.                     btrack = fjtrack;
  53.                 }
  54.             }
  55.         }
  56.         pw.println(tasti);
  57.         pw.close();
  58.  
  59.     }
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement