private static void populateStationAvailabilities(int dayEnd)
{
int i, j, k;
int next;
for (i = 0; i < AllStations.Count; i++)
{
for (j = dayEnd; j >= 0; j--)
for (k = nSlots[j]; k >= 0; k--)
{
if (k == nSlots[j])
next = stationTotalAvailabilityCounts[i, j + 1, 0];
else
next = stationTotalAvailabilityCounts[i, j, k + 1];
if (isStationAvailableAtSlot(AllStations[i], j, k) && (!AllStations[i].isActivityPin ||
AllStations[i].isActivityPin && canSchedulePinnedStation(j, k)))
stationTotalAvailabilityCounts[i, j, k] = AllStations[i].Capacity + next;
else
stationTotalAvailabilityCounts[i, j, k] = next;
}
}
}