【正经题解】荒岛求生
2024-03-15 10:57:01
发布于:浙江
9阅读
0回复
0点赞
这段代码通过模拟拼接过程,根据每种木棒的数量计算出最多可以拼成的三角形数量。最终输出结果。
#include <bits/stdc++.h>
using namespace std;
long long a[200005];
int main() {
// 输入木棒种类数
int n;
cin >> n;
// 输入每种木棒的数量
for (int i = 0; i < n; ++i) {
cin >> a[i];
}
// 初始化三角形数量
long long triangles = 0;
// 计算三角形数量
long long b = a[0] / 3;
a[0] %= 3;
long long les = a[0];
for (int i = 1; i < n; ++i) {
long long num = min(les, a[i] / 2);
les -= num;
a[i] -= num * 2;
b += num;
b += a[i] / 3;
a[i] %= 3;
les += a[i];
}
// 输出最多可以拼成的三角形数量
cout << b << endl;
return 0;
}
这里空空如也
有帮助,赞一个