• Skip to primary navigation
  • Skip to content
  • Skip to primary sidebar
  • Skip to secondary sidebar

GoHired

Interview Questions asked in Google, Microsoft, Amazon

Join WeekEnd Online Batch from 4-April-2020 on How to Crack Coding Interview in Just 10 Weeks : Fees just 20,000 INR

  • Home
  • Best Java Books
  • Algorithm
  • Internship
  • Certificates
  • About Us
  • Contact Us
  • Privacy Policy
  • Array
  • Stack
  • Queue
  • LinkedList
  • DP
  • Strings
  • Tree
  • Mathametical
  • Puzzles
  • Graph

Possible sizes of bus to carry n groups of friends

December 14, 2014 by Dhaval Dave

There are n groups of friends, and each group is numbered from 1 to n. The ith group contains ai people. 
They live near a bus stop, and only a single bus operates on this route. An empty bus arrives at the bus stop and all the groups want to travel by the bus.

However, group of friends do not want to get separated. So they enter the bus only if the bus can carry the entire group.

Moreover, the groups do not want to change their relative positioning while travelling. In other words, group 3 cannot travel by bus, unless group 1 and group 2 have either (a) already traveled by the bus in the previous trip or (b) they are also sitting inside the bus at present.

 You are given that a bus of size x can carry x people simultaneously.

 Find the size x of the bus so that (1) the bus can transport all the groups and (2) every time when the bus starts from the bus station, there is no empty space in the bus (i.e. the total number of people present inside the bus is equal to x)?

 Input Format

The first line contains an integer n (1≤n≤105). The second line contains n space-separated integers a1,a2,…,an (1≤ai≤104).

 Output Format

 Print all possible sizes of the bus in an increasing order.

Sample Input

 8

1 2 1 1 1 2 1 3

Sample Output

 3 4 6 12

Sample Explanation

In the above example, a1 = 1, a2 = 2, a3 = 1, a4 = 1, a5 = 1, a6 = 2, a7 = 1, a8 = 3.

 If x = 1 : In the first trip, a1 go by the bus. There will be no second trip because the bus cannot accommodate group 2. Hence “x = 1” is not the required answer.

 If x = 2 : No bus trip is possible. That’s because a1 cannot go alone, as one seat will be left vacant in the bus. And, a1 & a2 cannot go together, because the bus is cannot accommodate both the groups simultaneously.

 If x = 3 : In the first trip, a1 & a2 go by the bus. In the second trip, a3, a4 & a5 go by the bus. In the third trip, a6 & a7 go by the bus. In the fourth trip, a8 go by the bus.

 If x = 4 : In the first trip, a1, a2 & a3 go by the bus. In the second trip, a4, a5 & a6go by the bus. In the third trip, a7 & a8 go by the bus.

Similarly you can figure out the output for x= 5, 6 & 7.

 
 Solution:

def find_possible_bus_sizes(numbers) sum_array = [] numbers.each { |num| sum_array << sum_array.last.to_i + num} max, total, out = numbers.max, sum_array.last, [] sum_array.each { |sum| out << sum if (sum>=max && total%sum==0) } out end find_possible_bus_sizes([3,4,6,7,2,1,3,4]) output :- [30] find_possible_bus_sizes([]) output :- [] find_possible_bus_sizes([1]) output :- [1] find_possible_bus_sizes([1,1,1,1]) output :- [1,2,4] find_possible_bus_sizes([1,2,1,1,1,2,1,3]) output :- [3,4,6,12] find_possible_bus_sizes([1,2,6,2,1,3]) output :- [15] find_possible_bus_sizes([1,2,1,1,1,2,1,4]) output :- [13] find_possible_bus_sizes([1,2,1,5,3]) output :- [12]

-Article by Praveen Sah

Similar Articles

Filed Under: Interview Questions, problem Tagged With: Mathematical

Reader Interactions

Primary Sidebar

Join WeekEnd Online/Offline Batch from 4-April-2020 on How to Crack Coding Interview in Just 10 Weeks : Fees just 20,000 INR

Join WeekEnd Online/Offline Batch from 4-April-2020

WhatsApp us

Secondary Sidebar

Custom Search

  • How I cracked AMAZON
  • LeetCode
  • Adobe
  • Amazon
  • Facebook
  • Microsoft
  • Hacker Earth
  • CSE Interview

Top Rated Questions

Longest Increasing Subsequence

SAP Off Campus Hiring_ March 2015 Computer Skills

Edit Distance ( Dynamic Programming )

HackeEarth Flipkart’s Drone

Puzzle : 100 doors in a row Visit and Toggle the door. What state the door will be after nth pass ?

Maximum occurred Smallest integer in n ranges

N Petrol bunks or City arranged in circle. You have Fuel and distance between petrol bunks. Is it possible to find starting point so that we can travel all Petrol Bunks

Python String and numbers

C Program for TAIL command of UNIX

SAP Hiring Off-Campus General Aptitude

Word Break Problem

Wrong Directions given find minimum moves so that he can reach to the destination

The greedy coins game Dynamic Programming

Facebook Interview Question : Interleave List

Print Power Set of a Set

Introduction To Number Theory ( Part 1 )

System Design: Designing a LLD for Hotel Booking

Amazon Interview Experience – SDE Chennai

Get K Max and Delete K Max in stream of incoming integers

Closed Parentheses checker

Trie Dictionary

Level order traversal in Spiral form

Implement a generic binary search algorithm for Integer Double String etc

N teams are participating. each team plays twice with all other teams. Some of them will go to the semi final. Find Minimum and Maximum number of matches that a team has to win to qualify for finals ?

Daughter’s Age VeryGood Puzzle

SAP Off Campus Hiring_ March 2015 Analytical Aptitude

In Given LinkedList Divide LL in N Sub parts and delete first K nodes of each part

Maximum sum contiguous subarray of an Array

1014 Practice Question of New GRE – Princeton

Trapping Rain Water

Copyright © 2026 · Genesis Framework · WordPress · Log in