شاید باورش سخت باشد اما متن سوال به صورت صریح و عاری از داستانهای تخیلی، در زیر آمده است:
برنامهای بنویسید که با در نظر گرفتن دنبالهی اعداد صحیح a0,a1,⋯,an−1، عدد طبیعی l و عدد طبیعی k، تعداد زیردنبالههای متوالی از b0,b1,⋯,bl−1 را که حداقل k عدد متمایز دارند، محاسبه کند. دنبالهی b0,b1,⋯,bl−1 به صورت زیر ساخته میشود:
bi=a(i mod n)+⌊in⌋×n (0≤i≤l−1)
در سطر اول ورودی به ترتیب سه عدد طبیعی n، l و k آمده است.
در سطر دوم ورودی، n عدد صحیح آمده است که اعداد دنبالهی a0,a1,⋯,an−1 را نشان میدهند.
در تنها سطر خروجی پاسخ مسئله را چاپ کنید.
ورودی نمونه | خروجی نمونه |
---|---|
3 6 4 1 2 3 | 6 |
3 6 4 1 4 7 | 1 |
3 10 1 1 1 1 | 55 |
در ورودی نمونهی اول، دنبالهی biها برابر است با: 1 2 3 4 5 6 . با توجه به اینکه تمامی اعداد این دنباله متمایز هستند، بنابراین هر زیردنبالهای که طول حداقل k=4 داشته باشد، باید در پاسخ در نظر گرفته شود. پس پاسخ مسئله برابر است با تعداد زیردنبالههای متوالی از biها که حداقل چهار عضو دارند. این تعداد برابر است با: 3+2+1=6
در ورودی نمونهی دوم، دنبالهی biها برابر است با: 1 4 7 4 7 10. با توجه به اینکه تنها زیردنبالهای که حداقل چهار عضو متمایز دارد، برابر با کل دنبالهی b0,b1,⋯,b5 است بنابراین پاسخ مسئله برابر با 1 است.