Bài 5.5. Mô Phỏng Dân Số Sinh Vật Biến Đổi - [Độ khó: Khó]


LÀM BÀI

Points: 10 (partial)
Time limit: 2.0s
Memory limit: 64M

Author:
Problem type

Bài 5.5. Mô Phỏng Dân Số Sinh Vật Biến Đổi - [Độ khó: Khó]

Trong một dự án nghiên cứu sinh học, bạn được yêu cầu mô phỏng sự biến đổi dân số của một loài sinh vật đặc biệt. Loài sinh vật này có tốc độ sinh sản nhanh nhưng cũng dễ bị đột biến và chết đi.

Quy luật thay đổi dân số hàng ngày như sau:

  1. Sinh sản: Mỗi sinh vật hiện có sẽ sinh ra P sinh vật con. (Ví dụ: nếu có 10 sinh vật và P=2, sẽ có 20 sinh vật con được sinh ra, tổng cộng là 30 sinh vật).
  2. Đột biến và Tử vong: Sau khi quá trình sinh sản kết thúc trong ngày, Q phần trăm (Q%) của TỔNG DÂN SỐ HIỆN TẠI (sau khi sinh sản) sẽ đột biến và chết. Số sinh vật chết được làm tròn xuống số nguyên gần nhất.

Bạn cần mô phỏng sự thay đổi dân số trong D ngày. Nếu dân số giảm xuống 0 hoặc âm tại bất kỳ thời điểm nào, toàn bộ loài sẽ tuyệt chủng và quá trình mô phỏng dừng lại.

INPUT FORMAT

Dòng đầu tiên chứa bốn số nguyên N_initial, D, P, Q cách nhau bởi dấu cách.

  • N_initial (0 <= N_initial <= 1,000,000): Dân số ban đầu.
  • D (0 <= D <= 1,000,000): Số ngày mô phỏng.
  • P (0 <= P <= 100): Số sinh vật con mỗi sinh vật hiện có.
  • Q (0 <= Q <= 100): Phần trăm dân số đột biến và chết mỗi ngày.
OUTPUT FORMAT

In ra một số nguyên duy nhất là dân số cuối cùng sau D ngày, hoặc 0 nếu loài đã tuyệt chủng. Đảm bảo sử dụng kiểu dữ liệu long long cho dân số để tránh tràn số, vì dân số có thể tăng rất nhanh.

Ví dụ:

Input:

100 2 1 10

Output:

243

Giải thích:

  • N_initial = 100, D = 2, P = 1, Q = 10.

Ngày 1:

  • Dân số ban đầu: 100.
  • Sinh sản: Mỗi sinh vật sinh ra P=1 con. Tổng dân số sau sinh sản: 100 * (1 + 1) = 200.
  • Đột biến và Tử vong: 10% của 200 chết. Số chết = (200 * 10) / 100 = 20.
  • Dân số cuối ngày 1: 200 - 20 = 180.

Ngày 2:

  • Dân số đầu ngày: 180.
  • Sinh sản: Mỗi sinh vật sinh ra P=1 con. Tổng dân số sau sinh sản: 180 * (1 + 1) = 360.
  • Đột biến và Tử vong: 10% của 360 chết. Số chết = (360 * 10) / 100 = 36.
  • Dân số cuối ngày 2: 360 - 36 = 324.

Sau 2 ngày, dân số còn lại là 324. The sample output 243 is still confusing for my calculation. Let's check the sample calculation for 243. Day 1: 100 * (1+1) = 200. 200 * 0.9 = 180. (This is consistent) Day 2: 180 * (1+1) = 360. 360 * 0.9 = 324. (Consistent). So my calculation leads to 324.

How could 243 be achieved? If it's N_initial * (1+P-Q/100)^D? 100 * (1 + 1 - 0.1)^2 = 100 * (1.9)^2 = 100 * 3.61 = 361. No.

Perhaps the percentage applies differently. N_initial = 100, D=2, P=1, Q=10 If P is total new, then 100 + 100*1 = 200. Then 200 - (200*10/100) = 180. If P is x times original population, then 100 + 100*1 = 200.

What if the P new organisms are per 100 or something? No, "P new organisms are born per existing organism" is clear. "Q percentage of the total population at the end of the day (after reproduction) mutates and dies." This is what I followed.

Let's assume the problem means "Q% of P new organisms die and Q% of original population also dies". This can get too complex.

The most standard interpretation for "Q percent of TOTAL population dies" is current_pop * (1 + P) * (1 - Q/100). 100 * (1+1) * (1 - 10/100) = 100 * 2 * 0.9 = 180. Next day: 180 * 2 * 0.9 = 324.

I suspect the example output is incorrect or based on a slightly different rule not explicitly stated. I will make the explanation correct for 324 and use 324 as the output.

Ví dụ: Input:

100 2 1 10

Output:

324

Giải thích:

  • N_initial = 100, D = 2, P = 1, Q = 10.

Ngày 1:

  • Dân số đầu ngày: 100.
  • Bước 1: Sinh sản: Mỗi sinh vật sinh ra P=1 con. Dân số tăng lên 100 + (100 * 1) = 200.
  • Bước 2: Đột biến và Tử vong: Q=10% của dân số hiện tại (200) chết. Số chết = (200 * 10) / 100 = 20.
  • Dân số cuối ngày 1: 200 - 20 = 180.

Ngày 2:

  • Dân số đầu ngày: 180.
  • Bước 1: Sinh sản: Dân số tăng lên 180 + (180 * 1) = 360.
  • Bước 2: Đột biến và Tử vong: Q=10% của dân số hiện tại (360) chết. Số chết = (360 * 10) / 100 = 36.
  • Dân số cuối ngày 2: 360 - 36 = 324.

Sau 2 ngày, dân số còn lại là 324. Nếu dân số trở thành 0 hoặc âm tại bất kỳ thời điểm nào trong quá trình tính toán, quá trình mô phỏng sẽ dừng lại và kết quả là 0.



Comments

There are no comments at the moment.

Zalo