Skip to main content

Minimum Platforms Required For a Train

Given arrival and departure times of all trains that reach a railway station. Your task is to find the minimum number of platforms required for the railway station so that no train waits.
Note: Consider that all the trains arrive on the same day and leave on the same day. Also, arrival and departure times must not be same for a train.

Input:
For each test case, first line will contain an integer N, the number of trains. Next two lines will consist of N space separated time intervals denoting arrival and departure times respectively.
Note: Time intervals are in the 24-hour format(
hhmm), preceding zeros are insignificant. 200 means 2:00.
Consider the example for better understanding of input.
Output:
For each test case, print the minimum number of platforms required 
for the trains to arrive and depart safely.

Constraints:
1 <= N <= 1000
1 <= A[i] < D[i] <= 2359
Example:
Input:

900  940 950  1100 1500 1800
910 1200 1120 1130 1900 2000
Output:
3
Explanation:
Testcase 1: Minimum 3 platforms are required to safely arrive and depart all trains.
//JAVA CODE
import java.util.Arrays;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
       Scanner sc = new Scanner(System.in);
       int n=sc.nextInt();
       int[]arrive= new int[n];
       int[]departure = new int[n];
       for(int i=0;i<n;i++)
           arrive[i]=sc.nextInt();
       for(int i=0;i<n;i++)
           departure[i]=sc.nextInt();
        Arrays.sort(arrive);
        Arrays.sort(departure);

       //PLATFORM ALLOCATION       int platform = 1;int limit=0;
       for(int i=1;i<n;i++){
           for(int j=0;j<i;j++){
               if(arrive[i]>departure[j] && j>=limit){
                    if(i>limit)
                        limit++;
                    break;
               }

               else if(arrive[i]<departure[j] && j>=limit){
                   platform++;
                   break;
                }
           }
       }
       //PRINT        System.out.println(platform);
    }
}

Comments

Popular posts from this blog

zoho taxi question (3rd Round)

Taxi application Design a Call taxi booking application -There are n number of taxi’s. For simplicity, assume 4. But it should work for any number of taxi’s. -The are 6 points(A,B,C,D,E,F) -All the points are in a straight line, and each point is 15kms away from the adjacent points. -It takes 60 mins to travel from one point to another -Each taxi charges Rs.100 minimum for the first 5 kilometers and Rs.10 for the subsequent kilometers. -For simplicity, time can be entered as absolute time. Eg: 9hrs, 15hrs etc. -All taxi’s are initially stationed at A. -When a customer books a Taxi, a free taxi at that point is allocated -If no free taxi is available at that point, a free taxi at the nearest point is allocated. -If two taxi’s are free at the same point, one with lower earning is allocated -Note that the taxi only charges the customer from the pickup point to the drop point. Not the distance it travels from an adjacent point to pickup the customer. -If no taxi is free a...

Inser 0 after Consecutive (K times) Of 1 is Found

Example: Input: Number of bits: 12 Bits: 1 0 1 1 0 1 1 0 1 1 1 1 Consecutive K: 2 Output: 1 0 1 1 0 0 1 1 0 0 1 1 0 1 1 0 //JAVA CODE import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc= new Scanner(System. in ); int n = sc.nextInt(); int k=sc.nextInt(); int []a = new int [n]; int temp= 0 ; //Inputs for ( int i= 0 ;i<n;i++) a[i]=sc.nextInt(); //print for ( int i= 0 ;i<n;i++){ System. out .print(a[i]+ " " ); if (a[i]== 1 ){ temp++; if (temp==k) { System. out .print( "0 " ); temp= 0 ; } } else temp= 0 ; } } }

QUESTION You’re given an even number n. If n=4, you have to print the following pattern : 4444 4334 4334 4444 If n=6, then the pattern should be like this : 666666 655556 654456 654456 655556 666666

// JAVA CODE import java.util.*; import java.lang.*; import java.io.*; class zohoquestion{     public static void main(String args[]) {         Scanner sc= new Scanner(System.in);         int n=sc.nextInt();int limit=0;         int s=n;         int a[][]= new int[n][n];         int l=0;int r=n-1;         while(limit<n){             for(int i=l;i<=r;i++){                 for(int j=l;j<=r;j++)                     if(i==l || i==r || j==l || j==r)                     a[i][j]=n;             }             l++;r--;n--;limit++;         }         for(int i=0;i<s;i++){ ...