156572025-02-21 17:09:5642Színes szobák (50 pont)python3Időlimit túllépés 29/50365ms23924 KiB
from sys import stdin
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:
   print(N)
   return
  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:
   print(N)
   return
  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
 print(res)

s()
RészfeladatÖsszpontTesztVerdiktIdőMemória
base29/50
1Elfogadva0/016ms3232 KiB
2Időlimit túllépés0/0337ms23924 KiB
3Elfogadva1/117ms3244 KiB
4Elfogadva1/117ms3380 KiB
5Elfogadva1/117ms3380 KiB
6Elfogadva1/118ms3380 KiB
7Elfogadva1/117ms3380 KiB
8Elfogadva1/118ms3380 KiB
9Elfogadva1/117ms3380 KiB
10Elfogadva1/119ms3352 KiB
11Elfogadva1/118ms3380 KiB
12Elfogadva1/120ms3336 KiB
13Elfogadva1/141ms4864 KiB
14Elfogadva1/121ms3744 KiB
15Elfogadva1/123ms3904 KiB
16Elfogadva1/137ms4660 KiB
17Elfogadva1/141ms4912 KiB
18Elfogadva1/143ms4908 KiB
19Elfogadva1/1155ms14608 KiB
20Időlimit túllépés0/1365ms23628 KiB
21Elfogadva1/1206ms16872 KiB
22Elfogadva1/1247ms18780 KiB
23Időlimit túllépés0/1310ms21988 KiB
24Időlimit túllépés0/1340ms23660 KiB
25Időlimit túllépés0/1356ms23676 KiB
26Időlimit túllépés0/1358ms23720 KiB
27Elfogadva3/3268ms20912 KiB
28Időlimit túllépés0/3356ms20912 KiB
29Elfogadva3/3294ms20896 KiB
30Időlimit túllépés0/3345ms20724 KiB
31Időlimit túllépés0/3354ms20932 KiB
32Időlimit túllépés0/3361ms20912 KiB
33Elfogadva4/4166ms12012 KiB
34Időlimit túllépés0/4316ms19732 KiB