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