BUDALL - Phân bổ ngân sách 50/30/20

Xem dạng PDF

Gửi bài giải


Điểm: 1,00
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M

Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, JavaScript, Kotlin, Pascal, Perl, PHP, PyPy, Python, Ruby, Rust, Scratch, Swift

Phân bổ ngân sách 50/30/20

Lan vừa đi làm và lần đầu tiên có thu nhập ổn định mỗi tháng. Trước đây, cứ đến cuối tháng Lan thường không nhớ mình đã tiêu tiền vào những gì, nên Lan quyết định học cách quản lý tài chính cá nhân bài bản hơn để vừa đủ chi tiêu, vừa có khoản tiết kiệm cho tương lai.

Trong lúc tìm hiểu, Lan biết đến quy tắc 50/30/20. Đây là một cách phân bổ thu nhập sau thuế thành 3 nhóm rõ ràng:

  • 50% cho nhu cầu thiết yếu (needs): nhà ở, thức ăn, đi lại, điện nước, bảo hiểm, ...
  • 30% cho mong muốn cá nhân (wants): ăn ngoài, giải trí, du lịch, sở thích, mua sắm, ...
  • 20% cho tiết kiệm và đầu tư (savings): quỹ dự phòng, đầu tư dài hạn, trả nợ sớm, ...

Để dễ hình dung hơn, Lan còn thử nhiều mức thu nhập khác nhau bằng công cụ Behivest Tools - Budget Allocator. Qua đó, Lan nhận ra rằng một kế hoạch chi tiêu rõ ràng giúp việc quản lý tiền bạc bền vững hơn rất nhiều.

Bây giờ, hãy giúp Lan tính số tiền cần phân bổ cho từng nhóm theo quy tắc 50/30/20.

Cách làm tròn: Lấy phần nguyên khi chia (làm tròn xuống). Phần dư (nếu có) được cộng vào nhóm Tiết kiệm & Đầu tư.

Cụ thể:

  • Nhu cầu thiết yếu = ~\lfloor N \times 50 / 100 \rfloor~
  • Mong muốn = ~\lfloor N \times 30 / 100 \rfloor~
  • Tiết kiệm & Đầu tư = ~N~ - Nhu cầu thiết yếu - Mong muốn

Input

Dòng đầu tiên chứa số nguyên ~T~ ~(1 \le T \le 10^5)~ — số lượng test case.

Mỗi dòng trong ~T~ dòng tiếp theo chứa một số nguyên ~N~ ~(1 \le N \le 10^{15})~ — thu nhập sau thuế hàng tháng.

Output

Với mỗi test case, in ra một dòng gồm 3 số nguyên cách nhau bởi dấu cách: số tiền nhu cầu thiết yếu, số tiền mong muốn, số tiền tiết kiệm & đầu tư.

Ví dụ

Input
3
10000000
1000000
7
Output
5000000 3000000 2000000
500000 300000 200000
3 2 2
Giải thích
  • ~N = 10\,000\,000~: needs ~= 5\,000\,000~, wants ~= 3\,000\,000~, savings ~= 2\,000\,000~.
  • ~N = 7~: needs ~= \lfloor 7 \times 50/100 \rfloor = 3~, wants ~= \lfloor 7 \times 30/100 \rfloor = 2~, savings ~= 7 - 3 - 2 = 2~.

Giới hạn

  • ~1 \le T \le 10^5~
  • ~1 \le N \le 10^{15}~
  • Độ dài code không quá 65536 ký tự.

Bình luận

Please read the guidelines before commenting.



  • 1
    Duong_Thanh_Khiem_L8  đã bình luận lúc 16, Tháng 3, 2026, 15:56

    🐦


  • 0
    minhtai2013vn  đã bình luận lúc 4, Tháng 3, 2026, 12:45

    include <bits/stdc++.h>

    using namespace std;

    int main() { ios::syncwithstdio(false); cin.tie(NULL);

    int T;
    cin >> T;
    
    while (T--) {
        long long N;
        cin >> N;
    
        long long needs = N * 50 / 100;   // 50%
        long long wants = N * 30 / 100;   // 30%
        long long savings = N - needs - wants; // còn lại
    
        cout << needs << " " << wants << " " << savings << "\n";
    }
    
    return 0;
    

    }