欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF465B.Inbox (100500)
Inbox (100500)
题目描述
随着时间的推移,Alexey 的邮箱被太多的信件堆满了。其中有些已经阅读,有些还未阅读。
Alexey 的邮件程序可以显示所有信件的列表,或者显示单个信件的内容。一旦程序显示了一个未读信件的内容,该信件便会变为已读(如果显示的是已读信件则不会发生任何变化)。每次点击,Alexey 可以执行以下任一操作:
- 从信件列表进入任意单个信件的内容页面。
- 从单个信件内容页面返回到信件列表页面。
- 在单个信件内容页面下,切换到列表中的下一个或上一个信件。无法从第一个信件切换到上一个,也无法从最后一个信件切换到下一个。
程序无法删除信件或重新排序信件。
Alexey 想要阅读所有未读信件后去看足球比赛。现在他正在查看所有信件的列表,并且可以看到每封信的状态(已读或未读)。Alexey 至少需要多少次操作才能把所有信件都读完?
输入格式
第一行包含一个正整数 (),表示邮箱中的信件数量。
第二行包含 个以空格分隔的整数(值为 或 ),表示信件的状态。第 个数字为 表示第 封信件未读,为 表示已读。
输出格式
输出一个整数,表示Alexey将全部信件读完所需的最少操作次数。
说明/提示
在第一个样例中,Alexey 需要 3 次操作:打开第 2 封信件,切换到第 3 封,再切换到第 4 封。
在第二个样例中,操作流程为:打开第 1 封信件,切换到第 2 封,返回列表,再打开第 5 封信件。
在第三个样例中,所有信件都已经读完。
由 ChatGPT 5 翻译
样例
5
0 1 0 1 0
3
5
1 1 0 0 1
4
2
0 0
0
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |