提出 #7110013


ソースコード 拡げる

import sys
input = sys.stdin.readline
sys.setrecursionlimit(10 ** 7)

import numpy as np

MOD = 10**9 + 7

N,K = map(int,input().split())
A = np.array(input().split(), dtype=np.int64)

# 同じグループ内
def type_1():
    bl1 = A[:,None] > A[None,:]
    bl2 = np.arange(N,dtype=np.int64)[:,None] < np.arange(N,dtype=np.int64)[None,:]
    x = ((bl1 & bl2)*1).astype(np.int64).sum() % MOD
    return x*K%MOD

def type_2():
    # グループ間
    counter = np.bincount(A)
    cum = counter.cumsum()
    larger = N-cum
    x = (larger * counter % MOD).sum() % MOD
    y = K*(K-1)//2 % MOD
    return x*y%MOD

answer = (type_1() + type_2()) % MOD
print(answer)

提出情報

提出日時
問題 B - Kleene Inversion
ユーザ maspy
言語 Python (3.4.3)
得点 300
コード長 691 Byte
結果 AC
実行時間 1314 ms
メモリ 82664 KiB

ジャッジ結果

セット名 All Sample
得点 / 配点 300 / 300 0 / 0
結果
AC × 24
AC × 3
セット名 テストケース
All sample_01, sample_02, sample_03, testcase_0, testcase_1, testcase_10, testcase_11, testcase_12, testcase_13, testcase_14, testcase_15, testcase_16, testcase_17, testcase_18, testcase_19, testcase_2, testcase_20, testcase_3, testcase_4, testcase_5, testcase_6, testcase_7, testcase_8, testcase_9
Sample sample_01, sample_02, sample_03
ケース名 結果 実行時間 メモリ
sample_01 AC 1314 ms 21776 KiB
sample_02 AC 149 ms 12220 KiB
sample_03 AC 148 ms 12220 KiB
testcase_0 AC 148 ms 12220 KiB
testcase_1 AC 147 ms 12216 KiB
testcase_10 AC 154 ms 22072 KiB
testcase_11 AC 152 ms 17300 KiB
testcase_12 AC 147 ms 12220 KiB
testcase_13 AC 166 ms 40336 KiB
testcase_14 AC 149 ms 13996 KiB
testcase_15 AC 148 ms 13228 KiB
testcase_16 AC 151 ms 16084 KiB
testcase_17 AC 160 ms 30640 KiB
testcase_18 AC 170 ms 44944 KiB
testcase_19 AC 166 ms 38884 KiB
testcase_2 AC 149 ms 12220 KiB
testcase_20 AC 179 ms 57680 KiB
testcase_3 AC 149 ms 12216 KiB
testcase_4 AC 147 ms 12216 KiB
testcase_5 AC 148 ms 12216 KiB
testcase_6 AC 148 ms 12216 KiB
testcase_7 AC 195 ms 82536 KiB
testcase_8 AC 194 ms 82664 KiB
testcase_9 AC 195 ms 82536 KiB