CF465B Inbox (100500)
题目描述
随着时间的推移,Alexey 的邮箱被太多的信件堆满了。其中有些已经阅读,有些还未阅读。
Alexey 的邮件程序可以显示所有信件的列表,或者显示单个信件的内容。一旦程序显示了一个未读信件的内容,该信件便会变为已读(如果显示的是已读信件则不会发生任何变化)。每次点击,Alexey 可以执行以下任一操作:
- 从信件列表进入任意单个信件的内容页面。
- 从单个信件内容页面返回到信件列表页面。
- 在单个信件内容页面下,切换到列表中的下一个或上一个信件。无法从第一个信件切换到上一个,也无法从最后一个信件切换到下一个。
程序无法删除信件或重新排序信件。
Alexey 想要阅读所有未读信件后去看足球比赛。现在他正在查看所有信件的列表,并且可以看到每封信的状态(已读或未读)。Alexey 至少需要多少次操作才能把所有信件都读完?
输入格式
第一行包含一个正整数 $n$($1 \leq n \leq 1000$),表示邮箱中的信件数量。
第二行包含 $n$ 个以空格分隔的整数(值为 $0$ 或 $1$),表示信件的状态。第 $i$ 个数字为 $1$ 表示第 $i$ 封信件未读,为 $0$ 表示已读。
输出格式
输出一个整数,表示Alexey将全部信件读完所需的最少操作次数。
说明/提示
在第一个样例中,Alexey 需要 3 次操作:打开第 2 封信件,切换到第 3 封,再切换到第 4 封。
在第二个样例中,操作流程为:打开第 1 封信件,切换到第 2 封,返回列表,再打开第 5 封信件。
在第三个样例中,所有信件都已经读完。
由 ChatGPT 5 翻译