Editorial for Aslı, Deren and Rainy Days (Easy)


Remember to use this editorial only when stuck, and not to copy-paste code from it. Please be respectful to the problem author and editorialist.

Submitting an official solution before solving the problem yourself is a bannable offence.

tr

Soruda bizden istenen oldukça açık, eğer bir gün önceki \(\mathbf{a}\) ve sonraki \(\mathbf{b}\) gün (eğer önceki \(\mathbf{a}\) gün 1'den önceki günleri kapsıyorsa 1'den itibaren, eğer sonraki \(\mathbf{b}\) gün \(\mathbf{N}\)'den sonraki günleri kapsıyorsa \(\mathbf{N}\)'e kadar olanları hesaba katıyoruz.) arasındaki en küçük değere sahipse, bu gün geçerli bir gündür. Bu sorunun kolay versiyonunda \(\mathbf{a}\) ve \(\mathbf{b}\) sayıları en fazla 7 olabildiği için, 1'den başlayarak her gün için önceki \(\mathbf{a}\)'ya ve sonraki \(\mathbf{b}\)'ye kadar gidip baktığımız günün minimum olup olmadığını kontrol edebiliriz. Geçerli bir gün bulduğumuz takdirde de bakmaya 1'den başladığımız için bulduğumuz ilk gün, en erken geçerli gün olacaktır. Bunun için Python'daki list özelliklerini kullanabiliriz.

en

What we are asked to do in this problem is quite clear, a day is valid if it has the minimum rain value among the previous \(\mathbf{a}\) days and the next \(\mathbf{b}\) days. (If the previous \(\mathbf{a}\) days contain days earlier than the first, we start from the first, if the next \(\mathbf{b}\) days contain days after the \(\mathbf{N}\)th, we end in the \(\mathbf{N}\)th.) In the easy version of this problem, since the numbers \(\mathbf{a}\) and \(\mathbf{b}\) can be at most 7, we can check for each of the \(\mathbf{N}\) days whether it is valid or not, starting from the 1st. Once we find a valid day, it will be the earliest valid day since we started looking from the first day. We can use list comprehensions in Python for our aim.

sample solution:
n,a,b = list(map(int, input().split()))
days = list(map(int, input().split()))

for i in range(n):
    start = max(0, i-a)
    end = min(i+b+1, n)
    if days[i] == min(days[start:end]):
        print(i+1)
        break