115762024-10-27 12:17:04balintCsúcsokpython3Hibás válasz 16/100186ms18476 KiB
def main():
    N, M = map(int, input().split())
    A = list(map(int, input().split()))
    B = list(map(int, input().split()))

    # Create the height matrix H[i][j] = A[i] * B[j]
    # heights = [[A[i] + B[j] for j in range(M)] for i in range(N)]
    peaks = 0
    def height(i, j):
        return (A[i] + B[j] if 0 <= i < N and 0 <= j < M else 0)
    
    def is_peak(a,b,c,d,e,f,g,h,i):
        return e > max(a, b, c, d, f, g, h, i)
        # return e > a and e > b and e > c and e > d and e > f and e > g and e > h and e > i

    
    # Iterate through each cell to check for peaks
    a, b, c, d, e, f, g, h, i = 0, 0, 0, 0, height(0,0), height(0,1), 0, height(1,0), height(1,1) 
    peaks += is_peak(a,b,c,d,e,f,g,h,i)

    # Iterate from top to bottom (each iteration left to right, down, right to left, down)
    for N_i in range(0, N, 2):
        # scroll right
        for M_i in range(M-1):
            a,b,c = b,c, height(N_i-1, M_i+2)
            d,e,f, = e,f, height(N_i, M_i+2)
            g,h,i = h,i, height(N_i+1, M_i+2)

            peaks += is_peak(a,b,c,d,e,f,g,h,i)

        # reached end at bottom right
        if height(N_i+2, M_i+2) == 0:
            break

        # scroll down
        a,b,c = d,e,f
        d,e,f = g,h,i
        g,h,i = height(N_i+2, M_i), height(N_i+2, M_i+1), height(N_i+2, M_i+2)
        peaks += is_peak(a,b,c,d,e,f,g,h,i)

        # scroll left
        for M_i in range(M_i, -1, -1):
            a,b,c = height(N_i, M_i-1),a,b
            d,e,f, = height(N_i+1, M_i-1), d,e
            g,h,i = height(N_i+2, M_i-1), g,h

            peaks += is_peak(a,b,c,d,e,f,g,h,i)

        # reached end at bottom left
        if height(N_i+3, M_i-1) == 0:
            break

        # scroll down
        a,b,c = d,e,f
        d,e,f = g,h,i
        g,h,i = height(N_i+3, M_i-1), height(N_i+3, M_i), height(N_i+3, M_i+1)
        peaks += is_peak(a,b,c,d,e,f,g,h,i)

    print(peaks)
# Call the main function
main()
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva17ms3236 KiB
2Hibás válasz17ms3128 KiB
subtask216/16
3Elfogadva148ms14724 KiB
4Elfogadva143ms13160 KiB
5Elfogadva136ms5724 KiB
6Elfogadva146ms14712 KiB
7Elfogadva145ms14852 KiB
8Elfogadva141ms14412 KiB
subtask30/33
9Hibás válasz18ms3384 KiB
10Elfogadva18ms3364 KiB
11Hibás válasz18ms3380 KiB
12Hibás válasz17ms3384 KiB
13Futási hiba17ms3464 KiB
14Hibás válasz17ms3276 KiB
15Hibás válasz17ms3268 KiB
subtask40/51
16Hibás válasz180ms17928 KiB
17Hibás válasz160ms15208 KiB
18Elfogadva185ms18076 KiB
19Hibás válasz46ms14788 KiB
20Hibás válasz160ms14872 KiB
21Hibás válasz186ms17892 KiB
22Hibás válasz179ms18476 KiB
23Elfogadva172ms17532 KiB
24Hibás válasz184ms17804 KiB