Bài toán đi chợ – Code trong C++ và Pascal

Like Tweet Pin it Share Share Email

Để chuẩn bị cho lễ kết nạp đoàn viên mới, thầy T nhờ bạn Tèo đi ra chợ mua bim bim để các bạn liên hoan. Tèo mua được 2 túi bim bim. Túi thứ nhất có  x (x ≥ 1) gói và túi thứ 2 có y  (y ≥ 1) gói. Tèo đang rất lo lắng vì cậu đã lỡ làm mất túi thứ nhất, và không nhớ trong túi thứ nhất có bao nhiêu gói bim bim. Cậu chỉ nhớ được tổng số gói không vượt quá n và chia hết cho k.

Thầy T nhờ các bạn hãy giúp Tèo tính có thể có bao nhiêu gói bim bim có trong túi thứ nhất để thầy mua bổ sung. Nếu có nhiều khả năng thì in ra tất cả theo thứ tự tăng dần.

Nếu không thể biết số gói bim bim thì in ra -1.

INPUT

  • Một dòng duy nhất chứa 3 số nguyên y, k, n. (1 ≤ y, k, n ≤ 109, n/k ≤ 105).

OUTPUT

  • In ra kết quả của bài toán.

Ví dụ:

INPUT OUTPUT
10 1 10 -1
10 6 40 2 8 14 20 26

Code trong C++

#include <bits/stdc++.h>
using namespace std;
int n,y,k,s,d=0,m;
int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
  freopen("bmarket.inp","r",stdin);
	freopen("bmarket.out","w",stdout);
    cin>>y>>k>>n;
    m=n/k;
    for (int i=1;i<=m;i++)
    {
        s=i*k;
        if (s-y>0)
        {
            cout<<s-y<<" ";
            d++;
        }
    }
    if (d==0) cout<<-1;
    return 0;
}

Code bằng Pascal

var y,n,k,du:longint;
f1,f2:text;
procedure motep;
begin
assign(f1,'BMARKET.INP');
reset(f1);
assign(f2,'BMARKET.OUT');
rewrite(f2);
end;
procedure dongtep;
begin
close(f1);
close(f2);
end;
BEGIN
motep;
read(f1,y,k,n);
n:=n-y;
du:=y mod k;
du:=k-du;
if du>n then write(f2,-1) else
while du<=n do
begin
write(f2,du,' ');
du:=du+k;
end;

dongtep;
END.

Comments (0)

Trả lời

Your email address will not be published. Required fields are marked *