P143PROG spoj PTIT – Chia kẹo

Nguồn đề bài: http://www.spoj.com/PTIT/problems/P143PROG/

1. Đề bài P143PROG spoj

Đi chợ về, mẹ mua một gói kẹo cho anh em Tèo. Mẹ bảo Tèo rằng đợi các em đi học về thì hãy chia, nhưng Tèo không nghe, cứ đòi ăn trước. Tèo chia đều kẹo cho tất cả anh em, nếu như chia không đều thì các phần nhiều hơn (nhiều hơn các phần còn lại 1 cái) sẽ dành cho những đứa bé hơn. Là anh cả nên Tèo chỉ lấy phần nhỏ nhất.

Khi lũ trẻ đi học về, chúng nhận phần của mình, nhưng nghi ngờ anh Tèo là người lấy phần nhiều nhất, vì vậy chúng đem đi hỏi mẹ xem gói kẹo ban đầu có tất cả bao nhiêu cái?

Các bạn hãy tính toán xem số lượng kẹo có thể có ban đầu nhỏ nhất và lớn nhất là bao nhiêu?

Input

Gồm 2 số nguyên n (2 <= n <= 15) và k (n <= k <= 100) lần lượt là những đứa trẻ trong gia đình của Tèo và số kẹo còn lại sau khi Tèo đã ăn hết phần của mình.

Output

In ra 2 giá trị số kẹo nhỏ nhất và lớn nhất có thể có ban đầu.

Example

Test 1:

Input:

2
5

Output:

9 10

Giải thích test 1:

Nếu ban đầu có 9 cái kẹo, Tèo sẽ lấy phần ít hơn là 4 cái, còn lại 5 cái. Nếu ban đầu có 10 cái kẹo,

Tèo sẽ lấy 1 nửa là 5 cái, còn lại 5 cái cho đứa em.

Test 2:

Input:

3
5

Output:

7 7

2. Code tham khảo P143PROG spoj PTIT

a. Code Pascal

const   fi='';
type    data=longint;
var     n,k:data;
        f:text;
begin
        assign(f,fi); reset(f);
        read(f,n);
        read(f,k);
        close(f);
        if k mod (n-1) = 0 then
                write(n*(k div (n-1))-1,' ',n*(k div (n-1)))
        else
                write( k+(k div (n-1)),' ',k+(k div (n-1)));
end.

b. Code c++

#include<iostream>
using namespace std;
long n,k;
main()
{
       cin>>n;
       cin>>k;
       if(k%(n-1)==0)
              cout<< (n*(k/(n-1))-1)<<" "<<n*(k/(n-1));
       else
              cout<< k+(k/(n-1))<< " "<<k+(k/(n-1));
}

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *