#include <bits/stdc++.h>
using namespace std;
const int MXN = 3e5;
int n, tab[MXN + 5];
int opp(int x) {
  if (x == 0) return 1;
  return 0;
}
long long am[2];
void solve() {
  int colprev = 0, col;
  for (int i = 0; i < n; i++) {
    if (0) cout << " i : " << i << " prev = " << colprev << '\n';
    if ((tab[i] + 1) % 2 == 0)
      col = opp(colprev);
    else
      col = colprev;
    if (tab[i] % 2 == 0) col = opp(col);
    if (0)
      cout << i << " " << col << " am1 = " << (tab[i] + 1) / 2 << " am2 "
           << (tab[i]) / 2 << '\n';
    am[col] += (tab[i] + 1) / 2, am[opp(col)] += tab[i] / 2;
    colprev = col;
  }
}
int main() {
  cin >> n;
  for (int i = 0; i < n; i++) cin >> tab[i];
  solve();
  if (0) cout << am[0] << ' ' << am[1] << '\n';
  long long res = min(am[0], am[1]);
  cout << res << '\n';
}

### Prompt

Please provide a Cpp coded solution to the problem described below:

You are given a Young diagram. 

Given diagram is a histogram with n columns of lengths a_1, a_2, …, a_n (a_1 ≥ a_2 ≥ … ≥ a_n ≥ 1).

<image> Young diagram for a=[3,2,2,2,1].

Your goal is to find the largest number of non-overlapping dominos that you can draw inside of this histogram, a domino is a 1 × 2 or 2 × 1 rectangle.

Input

The first line of input contain one integer n (1 ≤ n ≤ 300 000): the number of columns in the given histogram.

The next line of input contains n integers a_1, a_2, …, a_n (1 ≤ a_i ≤ 300 000, a_i ≥ a_{i+1}): the lengths of columns.

Output

Output one integer: the largest number of non-overlapping dominos that you can draw inside of the given Young diagram.

Example

Input


5
3 2 2 2 1


Output


4

Note

Some of the possible solutions for the example:

<image> <image>

### Response

```cpp
#include <bits/stdc++.h>
using namespace std;
const int MXN = 3e5;
int n, tab[MXN + 5];
int opp(int x) {
  if (x == 0) return 1;
  return 0;
}
long long am[2];
void solve() {
  int colprev = 0, col;
  for (int i = 0; i < n; i++) {
    if (0) cout << " i : " << i << " prev = " << colprev << '\n';
    if ((tab[i] + 1) % 2 == 0)
      col = opp(colprev);
    else
      col = colprev;
    if (tab[i] % 2 == 0) col = opp(col);
    if (0)
      cout << i << " " << col << " am1 = " << (tab[i] + 1) / 2 << " am2 "
           << (tab[i]) / 2 << '\n';
    am[col] += (tab[i] + 1) / 2, am[opp(col)] += tab[i] / 2;
    colprev = col;
  }
}
int main() {
  cin >> n;
  for (int i = 0; i < n; i++) cin >> tab[i];
  solve();
  if (0) cout << am[0] << ' ' << am[1] << '\n';
  long long res = min(am[0], am[1]);
  cout << res << '\n';
}

```