Problem p00255 (C++) — buggy submission, verdict: Runtime Error

/* -----------------------------------------------------------------------------
        ????????????????????? 2012 ?????? ??????5
        ???????????????????????????????????????(?????????) C++?¨????
        g++ pckpre1205.cpp -O2
----------------------------------------------------------------------------- */
#include <algorithm>
#include <iostream>
#include <vector>

using namespace std;

#define PIPE_MAX 65000

int main() {

  int n;              // ???????????¬??°
  int pipe[PIPE_MAX]; // ??????????????????
  vector<int> joint;  // ?????§??????????????????

  long long jp;       // ????????¨???????????§??????????????????
  long long L, L_max; // ?????????+?????§????????????????????????
  long long mul;      // ??????
  long long wage;     // ??????

  // ???????????¬??°???????????????
  cin >> n;

  while (n > 0) {

    // ?????????????????????????????????
    for (int i = 0; i < n; i++)
      cin >> pipe[i];

    // ?????????????????????????????????
    for (int i = 1; i < n; i++) {
      int x;
      cin >> x;
      joint.push_back(x);
    }

    // ???????????????????????´????????????
    sort(joint.begin(), joint.end());

    // ????????¨???????????§??????????????????
    jp = n - 2;

    // ????????????????????????
    L = 0;
    for (int i = 0; i < n; i++)
      L += pipe[i];
    L_max = L;
    mul = n;

    // ???????????§???????±???????
    for (int i = n - 1; i >= 0; i--) {
      //
      if (L_max * mul < (L + joint[jp]) * i) {
        // ?????§??????????????????????????????+?????§???????????????????????????????¨???¶
        L_max = L + joint[jp];
        mul = i;
      }
      // ??´??°
      L += joint[jp];
      jp--;
    }

    // ?????§???????????¨???
    cout << L_max * mul << endl;

    // ???????????¬??°???????????????
    cin >> n;
    joint.clear();
  }

  return 0;
}

Error: 0

Fixed submission:

/* -----------------------------------------------------------------------------
        ????????????????????? 2012 ?????? ??????5
        ???????????????????????????????????????(?????????) C++?¨????
        g++ pckpre1205.cpp -O2
----------------------------------------------------------------------------- */
#include <algorithm>
#include <iostream>
#include <vector>

using namespace std;

#define PIPE_MAX 65000

int main() {

  int n;              // ???????????¬??°
  int pipe[PIPE_MAX]; // ??????????????????
  vector<int> joint;  // ?????§??????????????????

  long long jp;       // ????????¨???????????§??????????????????
  long long L, L_max; // ?????????+?????§????????????????????????
  long long mul;      // ??????
  long long wage;     // ??????

  // ???????????¬??°???????????????
  cin >> n;

  while (n > 0) {

    // ?????????????????????????????????
    for (int i = 1; i <= n; i++)
      cin >> pipe[i];

    // ?????????????????????????????????
    for (int i = 1; i < n; i++) {
      int x;
      cin >> x;
      joint.push_back(x);
    }

    // ???????????????????????´????????????
    sort(joint.begin(), joint.end());

    // ????????¨???????????§??????????????????
    jp = n - 2;

    // ????????????????????????
    L = 0;
    for (int i = 1; i <= n; i++)
      L += pipe[i];
    L_max = L;
    mul = n;

    // ???????????§???????±???????
    for (int i = n - 1; i >= 1; i--) {
      //
      if (L_max * mul < (L + joint[jp]) * i) {
        // ?????§??????????????????????????????+?????§???????????????????????????????¨???¶
        L_max = L + joint[jp];
        mul = i;
      }
      // ??´??°
      L += joint[jp];
      jp--;
    }

    // ?????§???????????¨???
    cout << L_max * mul << endl;

    // ???????????¬??°???????????????
    cin >> n;
    joint.clear();
  }

  return 0;
}