Codeforces 854B. Maxim Buys an Apartment 水题

题意

有一排n(1e9)个房子,已知里面有k个已经有人居住.剩余的为空.
询问最小和最大的情况下,一个房子为空但是紧邻着不为空房的个数.

解法

首先当k=0或者k=n时,ans=0.
最小时,所有有人居住的房子挤在一边,ans=1.
最大时,一个有人居住的房子最多在他周围产生两个满足条件的房子,且最少会有n-k个.
ans=min(2*k,n-k);

代码

/* LittleFall : Hello! */
#include 
using namespace std;
int main(void)
{
    int n,k;
    scanf("%d%d",&n,&k);
    if(k==0||k==n)
        printf("0 0\n");
    else
        printf("%d %d\n",1,min(k*2,n-k) );
    return 0;
}

你可能感兴趣的:(题解)