public class DogWalker
{
    private int maxDogs;

    private DogWalkCompany company;

    public DogWalker(int max, DogWalkCompany comp)
    {
        maxDogs = max;
        company = comp;
    }

    public int walkDogs(int hour)
    {
        int dogsToWalk = Math.min(maxDogs, company.numAvailableDogs(hour));
        company.updateDogs(hour, dogsToWalk);
        return dogsToWalk;
    }

    public int dogWalkShift(int startHour, int endHour)
    {
        int earnings = 0;

        for(int hour = startHour; hour <= endHour; hour++)
        {
            int dogsWalked = walkDogs(hour);
            earnings += dogsWalked * 5;

            if((hour >= 9 && hour <= 17) || dogsWalked == maxDogs)
                earnings += 3;
        }

        return earnings;
    }
}
