156942025-02-21 18:34:5742Színes szobák (50 pont)python3Időlimit túllépés 38/50317ms17908 KiB
from sys import stdin, stdout
input=stdin.readline

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

 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')
RészfeladatÖsszpontTesztVerdiktIdőMemória
base38/50
1Elfogadva0/016ms3308 KiB
2Elfogadva0/0298ms17908 KiB
3Elfogadva1/117ms3108 KiB
4Elfogadva1/117ms3124 KiB
5Elfogadva1/117ms3120 KiB
6Elfogadva1/117ms3268 KiB
7Elfogadva1/117ms3308 KiB
8Elfogadva1/117ms3316 KiB
9Elfogadva1/118ms3124 KiB
10Elfogadva1/118ms3376 KiB
11Elfogadva1/117ms3268 KiB
12Elfogadva1/119ms3352 KiB
13Elfogadva1/137ms4080 KiB
14Elfogadva1/123ms3632 KiB
15Elfogadva1/121ms3756 KiB
16Elfogadva1/135ms4100 KiB
17Elfogadva1/139ms4404 KiB
18Elfogadva1/139ms4352 KiB
19Elfogadva1/1146ms14676 KiB
20Elfogadva1/1289ms17876 KiB
21Elfogadva1/1186ms14676 KiB
22Elfogadva1/1216ms14676 KiB
23Elfogadva1/1272ms16568 KiB
24Elfogadva1/1289ms17664 KiB
25Elfogadva1/1284ms17664 KiB
26Elfogadva1/1291ms17668 KiB
27Elfogadva3/3246ms14900 KiB
28Időlimit túllépés0/3314ms14904 KiB
29Elfogadva3/3252ms15048 KiB
30Időlimit túllépés0/3303ms14852 KiB
31Időlimit túllépés0/3303ms14900 KiB
32Időlimit túllépés0/3317ms14900 KiB
33Elfogadva4/4155ms9188 KiB
34Elfogadva4/4273ms14252 KiB