Trang chủ Tin Học Lớp 9 Lễ giáng sinh sắp đến, Trung tâm Anh ngữ ABC Smart đang chuẩn bị quà để tặng cho các học...
Câu hỏi :

Lễ giáng sinh sắp đến, Trung tâm Anh ngữ ABC Smart đang chuẩn bị quà để tặng cho các học viên. Năm nay Trung tâm chỉ có quà là bút. Các bút viết này được phân ra làm 3 loại màu: bút màu đen, bút màu xanh, bút màu đỏ. Số bút màu đen là X cái, số bút màu xanh là Y cái, số bút màu đỏ là Z cái. Trung tâm cho tất cả các bút này vào một hộp quà bí ẩn. Hộp quà này chỉ có một lỗ hổng để cho tay vào lấy bút ra mà không nhìn thấy được màu sắc của các bút. Trung tâm đố các bạn học viên, phải lấy ra tối thiểu bao nhiêu cái bút để được ít nhất K cái bút có cùng màu với nhau. Dữ liệu: Vào từ file ABCBUT.INP gồm 4 số nguyên dương X, Y, Z, K (X, Y, Z, K <= 2.109). Kết quả: Ghi ra file ABCBUT.OUT là kết quả bài toán. Nếu không lấy được ít nhất K cái bút cùng màu thì ghi ra số 0. ABCBUT.INP ABCBUT.OUT 4 5 3 2 4 Giải thích: Lấy ra 4 cái bút thì sẽ luôn luôn có ít nhất 2 cái bút cùng màu với nhau; còn nếu lấy 3 cái bút thì chưa chắc đã có 2 cái bút cùng màu, vì lấy 1 cái bút đen + 1 cái bút xanh + 1 cái bút đỏ. Ràng buộc: + Có 60% số điểm tương ứng với K = 2; + Có 40% số điểm còn lại tương ứng với các điều kiện còn lại. C++

Lời giải 1 :

Trường hợp `X, Y, Z < K`: Trong trường hợp này, không có cách nào để lấy ít nhất `K` cây bút cùng màu, ta sẽ xuất `0`.

Trường hợp còn lại: Trong trường hợp có ít nhất một trong ba loại `>= K`, ta phải bốc ít nhất `K-1` cây bút ở mỗi loại + 1 cây để chắc chắn có `K` cây bút. Nếu một loại không đủ `K-1` cây thì ta bốc hết các cây ở loại đó.

$\\$

$\color{#1fdb91}{\texttt{C}}\color{#0aaec9}{\texttt{+}}\color{#e9418e}{\texttt{+}}$

#include <bits/stdc++.h>

#define ll long long

using namespace std;

int main() {
    
    ios_base::sync_with_stdio(false);
    cin.tie(NULL); cout.tie(NULL);
    
    ll x, y, z, k; cin >> x >> y >> z >> k;
    if (x < k && y < k && z < k) cout << 0;
    else cout << min(k-1, x) + min(k-1, y) + min(k-1, z) + 1;
    
}

// Author : Daoanhviet96
// Langugage : C++

$\\$
\begin{array}{c|c|c}\color{#ffd710}{\texttt{\{}} \color{#8655d6}{\texttt{\{}}\ \ \color{#8cdcda}{\text{Daoanhviet96}}\ \ \color{#8655d6}{\texttt{\}}} \color{#ffd710}{\texttt{\}}}\end{array}

image

Lời giải 2 :

#include <iostream>
using namespace std;
int main() {
    long long x,y,z,k;
    cin >> x >> y >> z >> k;
    if (x-k<0 && y-k<0 && z-k<0) cout << 0;
    else {
        long long p = k-1;
        cout << min(p,x) + min(p,y) + min(p,z)+1;
    }
}

Bạn có biết?

Tin học là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng. Tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin. Hãy tận dụng sức mạnh của tin học để giải quyết các vấn đề và sáng tạo ra những giải pháp mới!

Nguồn :

Wikipedia - Bách khoa toàn thư

Tâm sự lớp 9

Lớp 9 - Là năm cuối ở cấp trung học cơ sở, chúng ta sắp phải bước vào một kỳ thi căng thẳng và sắp chia tay bạn bè, thầy cô. Áp lực từ kỳ vọng của phụ huynh và tương lai lên cấp 3 thật là lớn, nhưng hãy tin vào bản thân và giữ vững sự tự tin!

Nguồn :

sưu tập

Copyright © 2024 Giai BT SGK