156612025-02-21 17:14:3642Színes szobák (50 pont)pypy3Runtime error 20/50109ms32000 KiB
from sys import stdin, stdout
input=stdin.readline

def s():
 N,K,M = map(int,input().split())
 szobak = list(map(int,input().split()))
 lepesek=[0]*M
 for i in range(M):
  lepesek[i]=list(map(int,input().split()))

 def test(start):
  for a,b in lepesek:
   if szobak[start]==a:
    start+=b
    if start==N:
     return 1
    elif start==-1:
     return -1
  return 0

 res=0
 first=test(0)
 last=test(N-1)
 if last==1:
  if first==1:return N 
  else:
   lo=0
   hi=N-1
   while hi-lo>1:
    mid=(hi+lo)//2
    if test(mid)==1:hi=mid
    else:lo=mid
   res+=N-hi
 if first==-1:
  if last==-1:return N
  else:
   lo=0
   hi=N-1
   while hi-lo>1:
    mid=(hi+lo)//2
    if test(mid)==-1:lo=mid
    else:hi=mid
   res+=hi
 return res

stdout.write(str(s())+'\n')
SubtaskSumTestVerdictTimeMemory
base20/50
1Accepted0/045ms19592 KiB
2Runtime error0/068ms32000 KiB
3Accepted1/154ms21448 KiB
4Accepted1/164ms21416 KiB
5Accepted1/161ms21516 KiB
6Accepted1/154ms21376 KiB
7Accepted1/154ms21596 KiB
8Accepted1/164ms21480 KiB
9Accepted1/161ms21688 KiB
10Accepted1/157ms21980 KiB
11Accepted1/164ms21552 KiB
12Accepted1/159ms21896 KiB
13Accepted1/164ms23012 KiB
14Accepted1/164ms22244 KiB
15Accepted1/164ms22244 KiB
16Accepted1/164ms22648 KiB
17Accepted1/174ms23372 KiB
18Accepted1/174ms23384 KiB
19Runtime error0/165ms32000 KiB
20Runtime error0/167ms32000 KiB
21Runtime error0/178ms32000 KiB
22Runtime error0/176ms32000 KiB
23Runtime error0/168ms32000 KiB
24Runtime error0/167ms32000 KiB
25Runtime error0/175ms32000 KiB
26Runtime error0/176ms32000 KiB
27Runtime error0/368ms32000 KiB
28Runtime error0/368ms32000 KiB
29Runtime error0/379ms32000 KiB
30Runtime error0/378ms32000 KiB
31Runtime error0/375ms32000 KiB
32Runtime error0/368ms32000 KiB
33Accepted4/4109ms29924 KiB
34Runtime error0/496ms32000 KiB