This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
def validacao(v, w, n,k,r):
t = [0] * k
for x in v:
t[x] += 1
for i in range(k):
if w[i] > t[i]:
return False
#if w[i] > n:
# return False
return True
n,k,r = map(int, input().split())
v = list(map(int, input().split()))
#if r < 1 or k < 1 or n<1:
# print("impossible")
# exit(0)
#
#if k > n:
# print("impossible")
# exit(0)
#
#if r > k:
# exit(0)
# print("impossible")
failed = 0
have = [0] * k
wanted = [0] * k
for i in range(r):
sym, co = map(int, input().split())
wanted[sym] = co
failed += 1
#print(f"falha: {failed}")
if not validacao(v, wanted, n,k,r):
print("impossible")
exit(0)
j = 0
d = 0
i = 0
res = 999999999999999
while True:
if failed > 0:
if j == n:
break
have[v[j]] += 1
if have[v[j]] == wanted[v[j]]:
failed -= 1
j += 1
else:
dif = j - i
if dif < res:
res = dif
if have[v[i]] == wanted[v[i]]:
failed += 1
have[v[i]] -= 1
i += 1
#if i > n:
# break
if res == 999999999999999:
print("impossible")
exit(0)
print(res)
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |