Khu phố nhà Mai đã bị phong tỏa do mới phát sinh một số ca nhiễm Covid-19. Có N
người thuộc diện phải cách ly y tế. Để theo dõi mức độ phòng chống dịch của địa phương. căn
bộ y tế đã thực hiện điều tra...
Trợ lý học tập AI - Câu trả lời này chỉ mang tính tham khảo
Để giải bài toán này, ta có thể sử dụng phương pháp tìm kiếm nhị phân. Ta sẽ tìm số lượng người đã thực hiện tốt việc cách ly từ 0 đến N, và kiểm tra xem số lượng người không thực hiện tốt cách ly có nằm trong khoảng từ a đến b hay không.
Dưới đây là mã giả của thuật toán:
1. Đọc dữ liệu từ file BAI1.INP.
2. Khởi tạo biến left = 0 và right = N.
3. Lặp cho đến khi left > right:
- Gán mid = (left + right) / 2.
- Kiểm tra xem số lượng người không thực hiện tốt cách ly với mid người có nằm trong khoảng từ a đến b hay không:
+ Nếu có, gán right = mid - 1.
+ Nếu không, gán left = mid + 1.
4. Ghi kết quả (left và right) vào file BAI1.OUT.
Dưới đây là mã C++ thực hiện thuật toán trên:
```cpp
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ifstream inputFile("BAI1.INP");
ofstream outputFile("BAI1.OUT");
int N, a, b;
inputFile >> N >> a >> b;
int left = 0;
int right = N;
while (left <= right) {
int mid = (left + right) / 2;
int notGood = N - mid;
if (notGood >= a && notGood <= b) {
outputFile << mid << " " << mid << endl;
break;
} else if (notGood < a) {
right = mid - 1;
} else {
left = mid + 1;
}
}
inputFile.close();
outputFile.close();
return 0;
}
```
Sau khi chạy mã trên, kết quả sẽ được ghi vào file BAI1.OUT.
FQA.vn Nền tảng kết nối cộng đồng hỗ trợ giải bài tập học sinh trong khối K12. Sản phẩm được phát triển bởi CÔNG TY TNHH CÔNG NGHỆ GIA ĐÌNH (FTECH CO., LTD)
Điện thoại: 1900636019
Email: info@fqa.vn
Địa chỉ: Số 21 Ngõ Giếng, Phố Đông Các, Phường Ô Chợ Dừa, Quận Đống Đa, Thành phố Hà Nội, Việt Nam.