結果

問題 No.2709 1975 Powers
ユーザー KDKJKDKJ
提出日時 2024-04-30 00:33:25
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 1,944 ms / 2,000 ms
コード長 1,524 bytes
コンパイル時間 182 ms
コンパイル使用メモリ 82,176 KB
実行使用メモリ 269,440 KB
最終ジャッジ日時 2024-04-30 00:33:54
合計ジャッジ時間 14,229 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 156 ms
88,448 KB
testcase_01 AC 156 ms
88,704 KB
testcase_02 AC 590 ms
154,496 KB
testcase_03 AC 1,075 ms
184,448 KB
testcase_04 AC 1,693 ms
242,688 KB
testcase_05 AC 1,343 ms
213,760 KB
testcase_06 AC 562 ms
131,968 KB
testcase_07 AC 301 ms
122,240 KB
testcase_08 AC 1,123 ms
211,200 KB
testcase_09 AC 1,431 ms
228,992 KB
testcase_10 AC 288 ms
123,264 KB
testcase_11 AC 356 ms
118,656 KB
testcase_12 AC 874 ms
190,208 KB
testcase_13 AC 1,767 ms
262,016 KB
testcase_14 AC 632 ms
148,864 KB
testcase_15 AC 1,085 ms
208,000 KB
testcase_16 AC 984 ms
163,456 KB
testcase_17 AC 329 ms
119,808 KB
testcase_18 AC 982 ms
197,760 KB
testcase_19 AC 1,617 ms
225,792 KB
testcase_20 AC 600 ms
155,648 KB
testcase_21 AC 1,244 ms
209,408 KB
testcase_22 AC 1,944 ms
269,440 KB
testcase_23 AC 1,746 ms
230,656 KB
testcase_24 AC 1,279 ms
176,512 KB
testcase_25 AC 1,700 ms
229,632 KB
testcase_26 AC 1,819 ms
246,656 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

from heapq import heappush, heappop, heapify
import sys
from collections import defaultdict, deque,Counter
from math import ceil, floor, sqrt, factorial,gcd
from itertools import permutations, combinations,product
from bisect import bisect_left, bisect_right
from copy import deepcopy
from functools import lru_cache #@lru_cache(maxsize=None)
from fractions import Fraction
sys.setrecursionlimit(10**6)
# input = sys.stdin.readline
vector1 = [[0, -1], [1, 0], [0, 1], [-1, 0]]
vector2 = [[0, 1], [1, 0], [-1, 0], [0, -1],
           [1,-1], [-1, 1], [1, 1], [-1, -1]]
from copy import deepcopy

def main():
    N,P,Q = map(int,input().split())
    A = list(map(int,input().split())) 
    A.sort()
    array = [[0 for i in range(P)]]
    for i in range(N):
        m = pow(5,A[i],P)
        tmp = deepcopy(array[-1])
        tmp[m] += 1
        array.append(tmp)
    ans = 0
    d = defaultdict(int)
    for a in A:
        if d[a]:
            continue
        else:
            d[a] = 1
            d[(a,10)] = pow(10,a,P)
            d[(a,9)] = pow(9,a,P)
            d[(a,7)] = pow(7,a,P)        

    for i in range(N-3):
        for j in range(i+1,N-2):
            if A[i] == A[j]:
                continue
            for k in range(j+1,N-1):
                if A[j] == A[k]:
                    continue
                t = (d[(A[i],10)] + d[(A[j],9)] + d[(A[k],7)]) % P
                t = (Q-t)%P
                ans += array[-1][t]-array[k+1][t]
    print(ans)       
    


if __name__ == '__main__':
    main()
0