156622025-02-21 17:14:5642Színes szobák (50 pont)python3Time limit exceeded 29/50372ms23992 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
base29/50
1Accepted0/017ms3124 KiB
2Time limit exceeded0/0335ms23992 KiB
3Accepted1/118ms3372 KiB
4Accepted1/117ms3364 KiB
5Accepted1/117ms3192 KiB
6Accepted1/117ms3244 KiB
7Accepted1/117ms3376 KiB
8Accepted1/118ms3272 KiB
9Accepted1/118ms3276 KiB
10Accepted1/119ms3468 KiB
11Accepted1/117ms3380 KiB
12Accepted1/121ms3380 KiB
13Accepted1/139ms4660 KiB
14Accepted1/121ms3636 KiB
15Accepted1/123ms3836 KiB
16Accepted1/137ms4580 KiB
17Accepted1/143ms4788 KiB
18Accepted1/143ms4932 KiB
19Accepted1/1153ms14344 KiB
20Time limit exceeded0/1337ms23756 KiB
21Accepted1/1216ms16792 KiB
22Accepted1/1237ms18764 KiB
23Time limit exceeded0/1330ms22080 KiB
24Time limit exceeded0/1361ms23680 KiB
25Time limit exceeded0/1328ms23660 KiB
26Time limit exceeded0/1330ms23632 KiB
27Accepted3/3282ms20924 KiB
28Time limit exceeded0/3372ms20908 KiB
29Accepted3/3279ms20912 KiB
30Time limit exceeded0/3344ms20908 KiB
31Time limit exceeded0/3356ms20896 KiB
32Time limit exceeded0/3358ms20944 KiB
33Accepted4/4167ms11952 KiB
34Time limit exceeded0/4307ms19688 KiB