A27729. 丢失的书页 多多有一本共n页的古老书籍。某一天多多想要打开这本书时,一不小心把书页都弄散了。多多赶紧把散落在地的书页都捡了起来,可惜这些书页已经都乱了。多多想要知道有没有书页弄丢了,于是清点了一下捡到的页码。但是多多很粗心,他很可能漏点了一些页码。考虑到相邻的两页是在同一张纸上的,即第1页和第2页在同一张纸上,第3页和第4页在同一张纸上……如果多多点到了第2页,但没点到第1页,那么他就一定是漏点…
填空题
中等
知识点
题目描述
丢失的书页
多多有一本共n页的古老书籍。某一天多多想要打开这本书时,一不小心把书页都弄散了。多多赶紧把散落在地的书页都捡了起来,可惜这些书页已经都乱了。多多想要知道有没有书页弄丢了,于是清点了一下捡到的页码。
但是多多很粗心,他很可能漏点了一些页码。考虑到相邻的两页是在同一张纸上的,即第1页和第2页在同一张纸上,第3页和第4页在同一张纸上……如果多多点到了第2页,但没点到第1页,那么他就一定是漏点了。而如果第1页和第2页都没有被多多点到,那么也有可能是这张纸真丢了。
多多想知道他最多丢了几张纸,以及他至少点漏了几页。
输入格式
第一行读入整数 n,m(n,m<=1000),分别表示总页数和多多点到的页数,保证n为偶数。
第二行读入m个数,表示多多点到的页码,保证互不相同。
输出格式
第一行输出一个整数,表示小 X 最多丢了几张纸。
第二行输出一个整数,表示小 X 至少点漏了几页。
输入/输出例子1
输入
6 3
4 1 3
输出
1
1
输入/输出例子2
输入
10 3
1 4 6
输出
2
3
参考答案
#include<bits/stdc++.h>
using namespace std;
int n,m,a[1005],ans1,ans2,x;
int main()
{
cin>>n>>m;
for(int i=1;i<=m;i++)
{
cin>>x;
a[x]++;
}
int ans1=0,ans2=0;
for(int i=1;i<=n;i+=2)
{
if(a[i]==0&&a[i+1]==0) ans1++;
ans2+=max(a[i],a[i+1])-min(a[i],a[i+1]);
}
cout<<ans1<<endl<<ans2<<endl;
return 0;
}
上一题
下一题