Al and Bill live at opposite ends of the same street. Al had to deliver a parcel to Bill’s home, Bill one at Al’s home. They started at the same moment, each walked at constant speed and returned home immediately after leaving the parcel at its destination. They met the first time at a distance of a yards from Al’s home and the second time at a distance of b yards from Bill’s home.

Assume that Al and Bill walk less than twice as fast as each other.

a. How long is the street?
b. If a = 300 and b = 400, who walks faster?

To solve this problem, we can use the concept of relative distances. Let's break down the given information:

1. Al and Bill live at opposite ends of the same street.
2. They started at the same moment and walked at a constant speed.
3. They returned home immediately after leaving the parcel at its destination.
4. They met the first time at a distance of a yards from Al’s home.
5. They met the second time at a distance of b yards from Bill’s home.
6. Al and Bill walk less than twice as fast as each other.

Let's denote the length of the street as "L" and the speeds of Al and Bill as "vA" and "vB," respectively.

To find the length of the street (L), we need to consider the distances covered by both Al and Bill during their walks to meet each other.

First Meeting:
When they meet for the first time, Al has already covered a distance of a yards, and Bill has covered (L - a) yards. Since they walk with different speeds, we can express their time of walking using the formula:

Time taken by Al = Distance / Speed = a / vA
Time taken by Bill = Distance / Speed = (L - a) / vB

Second Meeting:
They meet for the second time at a distance of b yards from Bill's home. At this point, Al has covered (L - b) yards, and Bill has covered b yards. Using the same formula as above, we can express their time of walking as:

Time taken by Al = Distance / Speed = (L - b) / vA
Time taken by Bill = Distance / Speed = b / vB

Since they started at the same moment, the total time taken by both Al and Bill for their walks should be the same:

Time taken by Al + Time taken by Bill = Time taken by Al + Time taken by Bill

We can equate the two expressions using the above information:

a / vA + (L - a) / vB = (L - b) / vA + b / vB

We can simplify this equation to solve for L:

a / vA + L / vB - a / vB = L / vA - b / vA + b / vB

Combining like terms, we get:

L (1 / vA + 1 / vB) = (L / vA - b / vA) + (a / vB - b / vB)

L (1 / vA + 1 / vB) = L / vA - (b - a) / vA + (a - b) / vB

L (1 / vA + 1 / vB) = L / vA - (b - a) / vA - (b - a) / vB

Factoring out L, we get:

L [(1 / vA) + (1 / vB)] = L [(1 / vA) - (b - a) / vA - (b - a) / vB]

Simplifying further, we arrive at:

(1 / vA) + (1 / vB) = (1 / vA) - (b - a) / vA - (b - a) / vB

2 / vB = - (b - a) / vA - (b - a) / vB

Multiplying both sides by vB, we get:

2 = - (b - a) - (b - a) (vB / vA)

Now, let's address part b of the question.

If a = 300 and b = 400, we can substitute these values into the equation above. Assuming Al's speed (vA) is slower than Bill's speed (vB), we can consider vB as a multiple of vA:

vB = k * vA (where k is a positive constant)

Substituting these values into the equation:

2 = - (400 - 300) - (400 - 300) (k * vA / vA)

2 = - 100 - 100k

2 + 100 = -100k

102 = -100k

Dividing both sides by -100:

1.02 = k

Since Bill's speed is k times Al's speed, we can conclude that Bill walks faster.

Therefore, the answer to part b is: Bill walks faster.

To find the length of the street (L), we need the values of vA and vB, which are not given in the question. With the given information, we can only determine who walks faster but not calculate the exact length of the street.