Bird
Raised Fist0
DSA Cprogramming~20 mins

Aggressive Cows Maximum Minimum Distance in DSA C - Practice Problems & Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Aggressive Cows Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of placing cows with minimum distance 3
Given the stalls at positions [1, 2, 8, 4, 9] and 3 cows, what is the maximum minimum distance between any two cows?
DSA C
int stalls[] = {1, 2, 8, 4, 9};
int n = 5;
int cows = 3;
// Function to check if cows can be placed with given distance
int canPlaceCows(int dist) {
    int count = 1;
    int last_position = stalls[0];
    for (int i = 1; i < n; i++) {
        if (stalls[i] - last_position >= dist) {
            count++;
            last_position = stalls[i];
            if (count == cows) return 1;
        }
    }
    return 0;
}

// Binary search for max minimum distance
int maxMinDist() {
    int low = 0, high = stalls[n-1] - stalls[0];
    int result = 0;
    while (low <= high) {
        int mid = (low + high) / 2;
        if (canPlaceCows(mid)) {
            result = mid;
            low = mid + 1;
        } else {
            high = mid - 1;
        }
    }
    return result;
}

// Sort stalls before calling maxMinDist
// After sorting: stalls = [1, 2, 4, 8, 9]
// Output the result
int main() {
    // Sorting code omitted for brevity
    int answer = maxMinDist();
    printf("%d", answer);
    return 0;
}
A3
B4
C5
D2
Attempts:
2 left
💡 Hint
Try placing cows starting from the first stall and check feasibility with binary search.
🧠 Conceptual
intermediate
1:30remaining
Understanding the feasibility check in Aggressive Cows problem
In the Aggressive Cows problem, what does the feasibility check function (like canPlaceCows) verify?
AWhether cows can be placed in all stalls regardless of distance
BWhether cows can be placed such that the minimum distance between any two cows is at least the given distance
CWhether the stalls are sorted in ascending order
DWhether the maximum distance between cows is minimized
Attempts:
2 left
💡 Hint
Think about what the binary search is trying to find.
🔧 Debug
advanced
2:00remaining
Identify the error in this feasibility check code snippet
What error will this code cause when checking feasibility for placing cows? int canPlaceCows(int dist) { int count = 0; int last_position = stalls[0]; for (int i = 1; i < n; i++) { if (stalls[i] - last_position >= dist) { count++; last_position = stalls[i]; } } return count >= cows; }
AIt will return true even if cows cannot be placed
BIt will cause a runtime error due to uninitialized variable
CIt will always return false because count starts at 0 instead of 1
DIt will cause an infinite loop
Attempts:
2 left
💡 Hint
Consider how many cows are counted initially.
❓ Predict Output
advanced
2:00remaining
Output of maximum minimum distance for large input
Given sorted stalls at positions [1, 2, 4, 8, 9, 12, 16, 20] and 4 cows, what is the maximum minimum distance between any two cows?
DSA C
int stalls[] = {1, 2, 4, 8, 9, 12, 16, 20};
int n = 8;
int cows = 4;
// Assume canPlaceCows and maxMinDist functions as defined previously
int main() {
    int answer = maxMinDist();
    printf("%d", answer);
    return 0;
}
A5
B8
C6
D7
Attempts:
2 left
💡 Hint
Try placing cows greedily with binary search on distance.
🚀 Application
expert
3:00remaining
Applying Aggressive Cows logic to place WiFi routers
You have houses at positions [2, 5, 11, 15, 18, 22, 25] along a street. You want to place 3 WiFi routers to maximize the minimum distance between any two routers. What is the maximum minimum distance achievable?
A6
B9
C7
D8
Attempts:
2 left
💡 Hint
Sort the house positions and use binary search with feasibility check.

Practice

(1/5)
1. What is the main goal of the Aggressive Cows Maximum Minimum Distance problem?
easy
A. To arrange cows so that all are placed in consecutive stalls
B. To find the maximum number of cows that can fit in a single stall
C. To minimize the total distance cows travel between stalls
D. To place cows in stalls so that the minimum distance between any two cows is as large as possible

Solution

  1. Step 1: Understand the problem objective

    The problem asks to place cows in given stalls such that the smallest distance between any two cows is as large as possible.
  2. Step 2: Clarify what maximum minimum distance means

    This means maximizing the minimum gap between cows, not minimizing total distance or placing cows consecutively.
  3. Final Answer:

    To place cows in stalls so that the minimum distance between any two cows is as large as possible -> Option D
  4. Quick Check:

    Maximum minimum distance = largest smallest gap [OK]
Hint: Focus on maximizing the smallest gap between cows [OK]
Common Mistakes:
  • Thinking it's about total distance traveled
  • Assuming cows must be in consecutive stalls
  • Confusing maximum distance with maximum minimum distance
2. Which of the following is the correct way to declare the binary search loop for finding the maximum minimum distance in C?
easy
A. do { /* binary search logic */ } while (low < high);
B. for (int i = low; i < high; i++) { /* binary search logic */ }
C. while (low <= high) { /* binary search logic */ }
D. if (low < high) { /* binary search logic */ }

Solution

  1. Step 1: Identify binary search loop structure

    Binary search typically uses a while loop checking low <= high to narrow the search space.
  2. Step 2: Check each option

    while (low <= high) { /* binary search logic */ } uses while(low <= high), which is correct. Options A and B use do-while and for incorrectly for binary search. if (low < high) { /* binary search logic */ } uses if, which runs only once.
  3. Final Answer:

    while (low <= high) { /* binary search logic */ } -> Option C
  4. Quick Check:

    Binary search loop = while(low <= high) [OK]
Hint: Binary search uses while(low <= high) loop [OK]
Common Mistakes:
  • Using for loop instead of while for binary search
  • Using if statement instead of loop
  • Using do-while with incorrect condition
3. Given stalls at positions [1, 2, 8, 4, 9] and 3 cows, what is the maximum minimum distance between any two cows after running the algorithm?
medium
A. 4
B. 6
C. 5
D. 3

Solution

  1. Step 1: Sort stall positions

    Sorted stalls: [1, 2, 4, 8, 9]
  2. Step 2: Use binary search to find max minimum distance

    Check feasibility for mid=4: place first cow at 1, next cow at position >= 5 (8 fits), next cow at position >= 9 (9 fits). All 3 cows placed with minimum distance 4. For mid=5: place at 1, next at >=6 (8 fits), next at >=11 (no stall), only 2 cows placed. So maximum minimum distance is 4.
  3. Final Answer:

    4 -> Option A
  4. Quick Check:

    Max minimum distance = 4 [OK]
Hint: Sort stalls first, then binary search distances [OK]
Common Mistakes:
  • Not sorting stalls before processing
  • Choosing distance too large without checking feasibility
  • Miscounting number of cows placed
4. Identify the error in this C code snippet for checking if cows can be placed with given minimum distance mid:
int count = 1, last_pos = stalls[0];
for (int i = 1; i < n; i++) {
  if (stalls[i] - last_pos >= mid) {
    count++;
    last_pos = stalls[i];
  }
}
return count >= cows;
medium
A. The initial count should be 0 instead of 1
B. No error; the code correctly checks feasibility
C. The comparison should be stalls[i] - last_pos > mid instead of >= mid
D. The loop should start from i = 0 instead of i = 1

Solution

  1. Step 1: Analyze initial count and loop start

    Count starts at 1 because first cow is placed at stalls[0]. Loop starts at i=1 to check next stalls.
  2. Step 2: Check distance comparison

    Using >= mid ensures cows are placed with at least mid distance apart, which is correct.
  3. Final Answer:

    No error; the code correctly checks feasibility -> Option B
  4. Quick Check:

    Initial count=1 and >= mid check is correct [OK]
Hint: Start count at 1 and use >= for distance check [OK]
Common Mistakes:
  • Starting loop at 0 causing double count
  • Using > instead of >= causing off-by-one error
  • Setting count to 0 missing first cow placement
5. You have stalls at positions [2, 5, 11, 15, 17, 22] and 4 cows. What is the maximum minimum distance to place all cows? Use binary search approach.
hard
A. 5
B. 6
C. 7
D. 8

Solution

  1. Step 1: Sort stalls (already sorted)

    Stalls: [2, 5, 11, 15, 17, 22]
  2. Step 2: Apply binary search on distance

    Low = 1, High = 22 - 2 = 20. Feasibility check: distance 5 allows 4 cows (2, 5, 11, 17; distances 3, 6, 6). Distance 6 allows only 3 cows (2, 11, 17). Thus maximum minimum distance is 5.
  3. Final Answer:

    5 -> Option A
  4. Quick Check:

    Max min distance = 5 [OK]
Hint: Use binary search between min and max stall positions [OK]
Common Mistakes:
  • Not checking feasibility correctly for each mid
  • Confusing mid calculation in binary search
  • Assuming max distance is stall range without checking placement
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard