Need Help on USACO Bronze "Candy Cane Feast"

Problem Info

Candy Cane Feast - USACO Bronze

Question

I was wondering if someone could help me debug this problem, since my code only works for the test case but nothing else.

What I’ve Tried

I have tried debugging the code via printing throughout the loops and fixing issues, and I have completed doing that, and I was able to get the test case, however it seems to not work for anything else other than the sample test case.

My Work

#include <iostream>
#include <cmath>

using namespace std;

int main(){
  int n, m;
  cin >> n >> m;

  int cows[n];
  for(int i = 0; i < n; i++){
    cin >> cows[i];
  }

  int canes[m];
  for(int i = 0; i < m; i++){
    cin >> canes[i];
  }


  for(int i = 0; i < 2; i++){
  int offtheground = 0;
    for(int j = 0; j < n; j++){
      int temp = 0;
      if(cows[j] > offtheground){
        temp = abs(canes[i] - cows[j]);
        if(temp < canes[i]){
        canes[i] = canes[i] - temp;
        cows[j] = cows[j] + temp;
        offtheground = temp;
        }

        else{
          cows[j] = cows[j] + canes[i];
          break;
        }
      }
      else if(canes[i] <= 0){
        break;
      }   
      else{
        continue;
      }
    }
    
  }
  
  for(int k = 0; k < n; k++){
    cout << cows[k] << endl;
  } 
}

In this, I used an offtheground variable in order to check when a cow is tall enough to reach the candy cane, and I used a temp variable to subtract from the cane height, and add it to the cow height when the cow is able to reach the candy cane.

Note that the large size of integers involved in this problem may require the use of 64-bit integer data types (e.g., a “long long” in C/C++).