首 先 2 , 4 , 8 这 种 说 拼 不 成 三 角 形 的 , 因 为 8 太 大 了 首先2,4,8这种说拼不成三角形的,因为8太大了 首先2,4,8这种说拼不成三角形的,因为8太大了
所 以 Ⅰ . 三 条 相 等 的 边 \color{Red}所以Ⅰ.三条相等的边 所以Ⅰ.三条相等的边
Ⅱ . 两 条 相 等 的 边 , 一 条 较 小 的 边 \color{orange}Ⅱ.两条相等的边,一条较小的边 Ⅱ.两条相等的边,一条较小的边
那 么 从 前 往 后 用 木 棍 , 优 先 拼 等 腰 三 角 形 那么从前往后用木棍,优先拼等腰三角形 那么从前往后用木棍,优先拼等腰三角形
因 为 这 样 可 以 不 让 前 面 的 木 棍 浪 费 因为这样可以不让前面的木棍浪费 因为这样可以不让前面的木棍浪费
证明
要 使 得 答 案 最 优 , 也 就 是 用 掉 最 多 的 木 棒 要使得答案最优,也就是用掉最多的木棒 要使得答案最优,也就是用掉最多的木棒
当 能 拼 等 腰 三 角 形 时 , 肯 定 不 去 拼 等 边 三 角 形 当能拼等腰三角形时,肯定不去拼等边三角形 当能拼等腰三角形时,肯定不去拼等边三角形
因 为 拼 完 后 都 是 用 掉 三 条 边 , 但 是 现 在 枚 举 到 的 边 肯 定 更 优 因为拼完后都是用掉三条边,但是现在枚举到的边肯定更优 因为拼完后都是用掉三条边,但是现在枚举到的边肯定更优
可 以 作 为 底 , 也 可 以 作 为 腰 , 而 以 前 留 下 来 的 只 能 作 为 底 可以作为底,也可以作为腰,而以前留下来的只能作为底 可以作为底,也可以作为腰,而以前留下来的只能作为底
因 此 一 定 是 优 先 用 掉 以 前 的 边 因此一定是优先用掉以前的边 因此一定是优先用掉以前的边
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int maxn=3e5+10;
const int inf=-1e18;
int n,a[maxn],ans,yu;
signed main()
{
cin >> n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
if(a[i]/2>=yu)
{
ans+=yu,a[i]-=yu*2;
ans+=a[i]/3,a[i]=a[i]%3;
yu=a[i];
}
else
{
ans+=a[i]/2,yu-=a[i]/2;
a[i]=a[i]%2,yu+=a[i];
}
}
cout<<ans;
}