# -*- coding: utf-8 -*-
import sys
import math
import os
import itertools
import string
import heapq
import _collections
from collections import Counter
from collections import defaultdict
from functools import lru_cache
import bisect
import re
import queue
from decimal import *


class Scanner():
    @staticmethod
    def int():
        return int(sys.stdin.readline().rstrip())

    @staticmethod
    def string():
        return sys.stdin.readline().rstrip()

    @staticmethod
    def map_int():
        return [int(x) for x in Scanner.string().split()]

    @staticmethod
    def string_list(n):
        return [input() for i in range(n)]

    @staticmethod
    def int_list_list(n):
        return [Scanner.map_int() for i in range(n)]

    @staticmethod
    def int_cols_list(n):
        return [int(input()) for i in range(n)]


class Math():
    @staticmethod
    def gcd(a, b):
        if b == 0:
            return a
        return Math.gcd(b, a % b)

    @staticmethod
    def lcm(a, b):
        return (a * b) // Math.gcd(a, b)

    @staticmethod
    def divisor(n):
        res = []
        i = 1
        for i in range(1, int(n ** 0.5) + 1):
            if n % i == 0:
                res.append(i)
                if i != n // i:
                    res.append(n // i)
        return res

    @staticmethod
    def round_up(a, b):
        return -(-a // b)

    @staticmethod
    def is_prime(n):
        if n < 2:
            return False
        if n == 2:
            return True
        if n % 2 == 0:
            return False
        d = int(n ** 0.5) + 1
        for i in range(3, d + 1, 2):
            if n % i == 0:
                return False
        return True


def pop_count(x):
    x = x - ((x >> 1) & 0x5555555555555555)
    x = (x & 0x3333333333333333) + ((x >> 2) & 0x3333333333333333)
    x = (x + (x >> 4)) & 0x0f0f0f0f0f0f0f0f
    x = x + (x >> 8)
    x = x + (x >> 16)
    x = x + (x >> 32)
    return x & 0x0000007f


MOD = int(1e09) + 7
INF = int(1e15)


def isOK(S):
    visited = [[False for _ in range(10)]for _ in range(10)]
    sx, sy = 0, 0
    for y in range(10):
        for x in range(10):
            if S[y][x] == 'o':
                sx = x
                sy = y
                break
    q = []
    q.append((sx, sy))
    while q != []:
        x, y = q.pop()
        visited[y][x] = True
        DIR = [(-1, 0), (1, 0), (0, -1), (0, 1)]
        for d in DIR:
            nx, ny = x + d[0], y + d[1]
            if not 0 <= nx < 10:
                continue
            if not 0 <= ny < 10:
                continue
            if visited[ny][nx]:
                continue
            if S[ny][nx] == 'x':
                continue
            q.append((nx, ny))
    for y in range(10):
        for x in range(10):
            if not visited[y][x] and S[y][x] == 'o':
                return False
    return True


def solve():
    N = Scanner.int()
    ans = 0
    tmp = 0
    for _ in range(N):
        A = Scanner.int()
        if A == 0:
            ans += tmp // 2
            tmp = 0
        else:
            tmp += A
    ans += tmp // 2
    print(ans)


def main():
    # sys.stdin = open("sample.txt")
    solve()


if __name__ == "__main__":
    main()


Measured memory_bytes: 5400