Codeforces 845 B. Maxim Buys an Apartment

来源:互联网 发布:金华淘宝开店培训 编辑:程序博客网 时间:2024/04/29 22:33
B. Maxim Buys an Apartment
time limit per test
1 second
memory limit per test
512 megabytes
input
standard input
output
standard output

Maxim wants to buy an apartment in a new house at Line Avenue of Metropolis. The house hasn apartments that are numbered from 1 to n and are arranged in a row. Two apartments are adjacent if their indices differ by1. Some of the apartments can already be inhabited, others are available for sale.

Maxim often visits his neighbors, so apartment is good for him if it is available for sale and there is at least one already inhabited apartment adjacent to it. Maxim knows that there are exactlyk already inhabited apartments, but he doesn't know their indices yet.

Find out what could be the minimum possible and the maximum possible number of apartments that are good for Maxim.

Input

The only line of the input contains two integers: n andk (1 ≤ n ≤ 109,0 ≤ k ≤ n).

Output

Print the minimum possible and the maximum possible number of apartments good for Maxim.

Example
Input
6 3
Output
1 3
Note

In the sample test, the number of good apartments could be minimum possible if, for example, apartments with indices1, 2 and 3 were inhabited. In this case only apartment 4 is good. The maximum possible number could be, for example, if apartments with indices1, 3 and 5 were inhabited. In this case all other apartments: 2, 4 and 6 are good.


题目大意: 给你个n,代表n个房子,然后有个傻*要去买房子,然后他想挨着邻居住,然后给你一个m,代表在n个房子中已经有m个人居住了,但是这个傻*不知道有哪些已经被居住了,所以他想问你他买房子最坏有几种选择,和最好有几种选择。


思路:

0代表空,1代表有人居住, 则9 3 最坏情况为111000000则最坏的答案为1,因为我想挨着邻居只能坐在第四号位置,最好的情况为010010010,所有的地方都可以住, 答案为6

然后大家看我的代码,意会一下就懂啦,哇咔咔

注意:听说有的会卡int 但是我的代码没有,哇咔咔


AC代码:

#include<bits/stdc++.h>using namespace std;int main(){    int n, k;    scanf("%d%d", &n, &k);    if(n == k || k == 0){        printf("%d %d\n", 0, 0);    }    else{        int ans = 0;        if(k <= n / 3){            printf("%d %d\n", 1, 2 * k);        }        else{            ans += (n / 3) * 2;            k -= (n / 3);            if(n % 3 == 1){                k--;            }            else if(n % 3 == 2){                k--;                ans++;            }            printf("%d %d\n", 1, ans - k);        }    }}


阅读全文
0 0