Thách thức liên quan đến tiếp thị đa cấp.
Một đồng nghiệp muốn nhận được phần thưởng. Vì vậy, nó thu hút Ncác nhà đầu tư ( N>=1), mỗi nhà đầu tư thứ i đầu tư x[i]. Khi tổng số tiền vượt quá ngưỡng, x[0]+x[1]+...+x[N-1] >= Tmột đồng nghiệp có thể được khen thưởng. Nhưng chỉ khi một điều kiện sau được thỏa mãn:
- Số lượng nhà đầu tư tối thiểu phải lớn hơn
M, (M<=N) - Đối với ít nhất một số nguyên
k, ở đâuk>=Mvàk<=N, bất kỳknhà đầu tư nào cũng phải đầu tư ít nhấtT/kmỗi số nguyên;
Cho N, x[], T, Mbạn nên xác định xem phần thưởng của đồng nghiệp có được tạo ra hay không (kết quả boolean, "có" hoặc "không"). Mã ngắn nhất sẽ thắng.
Ví dụ:
N=5; M=3; T=10000, để tạo ra phần thưởng của đồng nghiệp, một trong những điều sau đây phải được thỏa mãn:
- bất kỳ 3 đầu tư ít nhất 3334 mỗi
- bất kỳ 4 đầu tư ít nhất 2500 mỗi
- Tất cả 5 đầu tư ít nhất 2000 mỗi
N=6; M=2; T=5000:
- bất kỳ 2 đầu tư ít nhất 2500 mỗi
- bất kỳ 3 đầu tư ít nhất 1667 mỗi
- bất kỳ 4 đầu tư ít nhất 1250 mỗi
- bất kỳ 5 đầu tư ít nhất 1000 mỗi
- tất cả 6 đầu tư ít nhất 834 mỗi
khái quát: cho bất kỳ k, ở đâu k>=Mvà k<=N:
- bất kỳ
kcủaNcác nhà đầu tư có vốn đầu tư ít nhấtT/kmỗi
Các trường hợp thử nghiệm:
định dạng:
N, x[], T, M -> correct answer
6, [999, 999, 59, 0, 0, 0], 180, 3 -> 0
6, [0, 60, 0, 60, 60, 0], 180, 3 -> 1
6, [179, 89, 59, 44, 35, 29], 180, 3 -> 0
6, [179, 89, 59, 44, 35, 30], 180, 3 -> 1
6, [179, 89, 59, 44, 36, 29], 180, 3 -> 1
6, [179, 90, 59, 44, 35, 29], 180, 3 -> 0
6, [30, 30, 30, 30, 29, 30], 180, 3 -> 0
6, [30, 30, 30, 30, 30, 30], 180, 3 -> 1
truevà giá trị trung thực cho false?
len(x)sẽ ngắn hơn viếtN. Điều đó được thực hiện, bởi vì đối với mảng được phân bổ độngxtrong C không cólen(x)hàm trực tiếp - vì vậy bạn luôn có thể tham khảo độ dài làN. Để thuận tiện, bạn có thể coi tất cả dữ liệu đầu vàoN, x[], T, Mlà một số hằng số được xác định bên ngoài hoặc một số ngôn ngữ được tích hợp sẵn.