# Is the Internal Solution for Bucket List Wrong?

This is the Internal Solution for The Bucket List Problem:

``````import java.io.*;
import java.util.*;

public class TheBucketList2 {
static final int maxTime = 1000;

public static void main (String[] args) throws IOException {
Kattio io = new Kattio("blist");
int n = io.nextInt();

int[] startTimes = new int[n + 1];
int[] endTimes = new int[n + 1];
int[] bucketsNeeded = new int[n + 1];

// these track when the cows start
int[] cowStart = new int[maxTime + 1];
int[] cowEnd = new int[maxTime + 1];

for (int x = 1; x <= n; x++) {
startTimes[x] = io.nextInt();
endTimes[x] = io.nextInt();
bucketsNeeded[x] = io.nextInt();

cowStart[startTimes[x]] = x;
cowEnd[endTimes[x]] = x;
}

int maxBuckets = 0;
int countBuckets = 0;

for (int t = 1; t <= 1000; t++) {
// is a start, increase the bucket count
if (cowStart[t] > 0) {
countBuckets += bucketsNeeded[cowStart[t]];
}

// keep track of the maximum buckets needed at any time
maxBuckets = Math.max(maxBuckets, countBuckets);

// is an end, decrease the bucket count
if (cowEnd[t] > 0) {
countBuckets -= bucketsNeeded[cowEnd[t]];
}
}

io.println(maxBuckets);
io.close();
}
}
``````

Can someone help me understand how this works? I tried running it and adding print statements to see what it is doing. the part I am having difficulty with is understanding is this part:

``````for (int t = 1; t <= 1000; t++) {
// is a start, increase the bucket count
if (cowStart[t] > 0) {
countBuckets += bucketsNeeded[cowStart[t]];
}

// keep track of the maximum buckets needed at any time
maxBuckets = Math.max(maxBuckets, countBuckets);

// is an end, decrease the bucket count
if (cowEnd[t] > 0) {
countBuckets -= bucketsNeeded[cowEnd[t]];
}
}

``````

How is this working? Wouldnt cows that begin milking at the same time be overridden in the cowStart and cowEnd arrays? I tried running this code with cow processes that start at the same time and I got the wrong output.

Input:

5
4 10 1
8 13 3
2 6 2
2 4 2
4 7 2

Output:

4

From the problem statement:

To simplify his job, FJ has made sure that at any given moment in time, there is at most one cow whose milking is starting or ending (that is, the sisi’s and titi’s are all distinct).

Thank you so much!