酷代码 AI
菜单
服务商

大家看到一座吊桥,但是上面的木头都被抽走了。小核桃让大家到附近收集了一些木头,准备依次把这些木头并排放到吊桥上。如果木头长度小于5,就无法放到吊桥上。当木头宽度加起来达到10的时候,就不需要再继续往吊桥上摆放木头了。请你编写程序,计算放到吊桥上的木头数量,以及它们的总宽度。 输入: 共n+1行。 第一行为一个整数n,表示木头的数量。 接下来n行,每行两个整数,表示每块木头的长度和宽度。 输出: 两个整数,分别表示最终放到吊桥上的木头数量,以及它们的总宽度,相邻数字之间用空格隔开。 输入样例1: 5 3 2 5 5 4 3 8 6 5 4 输出样例1: 2 11 输入样例2: 6 4 3 6 3 8 6 3 2 5 6 4 3 输出样例2: 3 15 用时/内存: 1000MS/100MB 提示: 【样例解释】样例1中,前2块长度大于等于5的木头的长度和宽度分别为: 5 5 8 6 总宽度为11 c++

```cpp #include <iostream> using namespace std; int main() { int n; cin >> n; int woodCount = 0; int totalWidth = 0; for (int i = 0; i < n; ++i) { int length, width; cin >> length >> width; if (length >= 5 && totalWidth + width <= 10) { woodCount++; totalWidth += width; } } cout << woodCount << " " << totalWidth; return 0; } ``` 代码解释 1. 变量声明与输入: - `n` 用来存储木头的总数,通过 `cin >> n` 从标准输入读取该值。 - `woodCount` 用于记录最终能放到吊桥上的木头数量,初始化为 0。 - `totalWidth` 用于记录放到吊桥上木头的总宽度,初始化为 0。 2. 遍历每块木头: - 使用 `for` 循环遍历 `n` 块木头。 - 在每次循环中,使用 `cin >> length >> width` 读取当前木头的长度和宽度。 - 对于每块木头,检查其长度是否大于等于 5,并且将其宽度加入总宽度后是否不超过 10。如果满足这两个条件,则将该木头放置到吊桥上,即 `woodCount` 加 1,同时更新 `totalWidth`。 3. 输出结果: - 循环结束后,使用 `cout << woodCount << " " << totalWidth;` 输出最终放到吊桥上的木头数量和它们的总宽度,中间用空格分隔。 复杂度分析 - 时间复杂度:$O(n)$,其中 $n$ 是木头的数量,因为代码只需要对每块木头进行一次遍历。 - 空间复杂度:$O(1)$,只使用了常数级的额外变量,不随输入规模的变化而变化。 [2025-11-15 19:43:26 | AI问答 | 465点数解答]

相关提问
发财导航,免费问AI
实用工具查看更多