198832025-12-28 22:07:49kissmikkiDNS szakaszok száma (75 pont)python3Wrong answer 18/7561ms8828 KiB
import sys;

def szamol(DNS):
    hossz=len(DNS)
    # A-k száma balról jobbra
    db=0
    A=[0]*hossz
    for i in range(0, hossz):
        if DNS[i] == 'A':
            db=db+1
        A[i]=db
    # T-k száma jobbról balra
    db=0
    T=[0]*hossz
    for i in range(hossz-1, -1, -1):
        if DNS[i] == 'T':
            db=db+1
        T[i]=db
    # megelőző G-k száma balról jobbra
    db=0
    G=[0]*hossz
    for i in range(0, hossz):
        G[i]=db
        if DNS[i] == 'G':
            db=db+1
    # összesítés
    db=0
    a=-1
    t=-1
    for i in range(0, hossz):
        if DNS[i]=='G' and (a != A[i] or t != T[i]):
            db = db+(A[i]-G[i])*T[i]
            a,t = A[i], T[i]
    print(db)
    return db

def test():
    db=szamol("CAGTAATTGATA")
    assert 6==db

    db=szamol("AGT")
    assert 1==db

    db=szamol("AGTAGT")
    assert 3==db

    db=szamol("ATATATG")
    assert 0==db

    db=szamol("AGTAGTAGTAGTAGT")
    assert 15==db

    DNS="A"
    for i in range(0,33333):
        DNS=DNS+"AGT"
    db=szamol(DNS)
    assert 1111122222==db

def futtat():
    hossz=int(input())
    DNS=input()
    szamol(DNS)

#test()
futtat()
SubtaskSumTestVerdictTimeMemory
base18/75
1Accepted0/016ms3324 KiB
2Wrong answer0/061ms7876 KiB
3Accepted3/317ms3124 KiB
4Accepted4/417ms3172 KiB
5Accepted4/416ms3124 KiB
6Accepted4/416ms3124 KiB
7Wrong answer0/414ms3128 KiB
8Wrong answer0/317ms3128 KiB
9Wrong answer0/317ms3112 KiB
10Wrong answer0/417ms3140 KiB
11Wrong answer0/417ms3116 KiB
12Wrong answer0/417ms3124 KiB
13Wrong answer0/417ms3120 KiB
14Wrong answer0/417ms3224 KiB
15Wrong answer0/359ms7732 KiB
16Wrong answer0/454ms8244 KiB
17Wrong answer0/459ms8500 KiB
18Wrong answer0/457ms8244 KiB
19Wrong answer0/457ms8712 KiB
20Wrong answer0/457ms8828 KiB
21Accepted3/356ms8684 KiB
22Wrong answer0/454ms8760 KiB