提出 #72199982


ソースコード 拡げる

N=int(input())
A=list(map(int,input().split()))
B=sorted(A)
D=[]
DS=set()
T=[]
last=-1
for i in range(N) :
    if B[i]!=last :
        D.append(B[i])
    DS.add(B[i])
    last=B[i]
C=[0 for i in range(len(D))]
R={}
for i in range(len(D)) :
    R[D[i]]=i
for i in range(N) :
    C[R[A[i]]]+=1
E=[]
ES=set()
ans=0
for i in range(len(D)) :
    if D[i]%5==0 :
        if (D[i]//5)*3 in DS and (D[i]//5)*7 in DS:
            E.append(D[i])
            ES.add(D[i])
            ans+=C[R[(D[i]//5)*3]]*C[R[(D[i]//5)*7]]*C[i]
RE={}
for i in range(len(E)) :
    RE[E[i]]=i
F=[[] for i in range(len(E))]
for i in range(N) :
    if A[i] in ES :
        F[RE[A[i]]].append(5)
    if A[i]%3==0 and (A[i]//3)*5 in ES :
        F[RE[(A[i]//3)*5]].append(3)
    if A[i]%7==0 and (A[i]//7)*5 in ES :
        F[RE[(A[i]//7)*5]].append(7)
for t in range(len(F)) :
    M=len(F[t])
    P=[0 for i in range(M+1)]
    Q=[0 for i in range(M+1)]
    R=[0 for i in range(M+1)]
    for i in range(M) :
        if F[t][i]==3 :
            P[i]=P[i-1]+1
        else :
            P[i]=P[i-1]
        if F[t][i]==5 :
            Q[i]=Q[i-1]+P[i-1]
        else :
            Q[i]=Q[i-1]
        if F[t][i]==7 :
            R[i]=R[i-1]+Q[i-1]
        else :
            R[i]=R[i-1]
    ans-=R[-2]
    M=len(F[t])
    P=[0 for i in range(M+1)]
    Q=[0 for i in range(M+1)]
    R=[0 for i in range(M+1)]
    for i in range(M) :
        if F[t][-1-i]==3 :
            P[i]=P[i-1]+1
        else :
            P[i]=P[i-1]
        if F[t][-1-i]==5 :
            Q[i]=Q[i-1]+P[i-1]
        else :
            Q[i]=Q[i-1]
        if F[t][-1-i]==7 :
            R[i]=R[i-1]+Q[i-1]
        else :
            R[i]=R[i-1]
    ans-=R[-2]
print(ans)

提出情報

提出日時
問題 D - Kadomatsu Subsequence
ユーザ Youteru
言語 Python (PyPy 3.11-v7.3.20)
得点 425
コード長 1783 Byte
結果 AC
実行時間 279 ms
メモリ 277188 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 425 / 425
結果
AC × 3
AC × 33
セット名 テストケース
Sample sample_01.txt, sample_02.txt, sample_03.txt
All sample_01.txt, sample_02.txt, sample_03.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt
ケース名 結果 実行時間 メモリ
sample_01.txt AC 51 ms 80316 KiB
sample_02.txt AC 50 ms 80192 KiB
sample_03.txt AC 51 ms 80484 KiB
test_01.txt AC 51 ms 80244 KiB
test_02.txt AC 51 ms 80284 KiB
test_03.txt AC 50 ms 80436 KiB
test_04.txt AC 50 ms 80164 KiB
test_05.txt AC 149 ms 189168 KiB
test_06.txt AC 149 ms 185036 KiB
test_07.txt AC 149 ms 185272 KiB
test_08.txt AC 153 ms 189724 KiB
test_09.txt AC 150 ms 189604 KiB
test_10.txt AC 151 ms 189532 KiB
test_11.txt AC 157 ms 189836 KiB
test_12.txt AC 157 ms 190252 KiB
test_13.txt AC 152 ms 188888 KiB
test_14.txt AC 171 ms 187688 KiB
test_15.txt AC 171 ms 188408 KiB
test_16.txt AC 169 ms 185872 KiB
test_17.txt AC 176 ms 162532 KiB
test_18.txt AC 189 ms 158512 KiB
test_19.txt AC 172 ms 159552 KiB
test_20.txt AC 228 ms 163332 KiB
test_21.txt AC 206 ms 160084 KiB
test_22.txt AC 234 ms 163148 KiB
test_23.txt AC 238 ms 194576 KiB
test_24.txt AC 262 ms 201612 KiB
test_25.txt AC 279 ms 196936 KiB
test_26.txt AC 250 ms 276120 KiB
test_27.txt AC 250 ms 276876 KiB
test_28.txt AC 250 ms 277188 KiB
test_29.txt AC 252 ms 276660 KiB
test_30.txt AC 251 ms 276436 KiB