Editorial for Aslı, Deren and Rainy Days (Easy)
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