测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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; }
上一题 下一题