結果
| 問題 | No.1597 Matrix Sort | 
| コンテスト | |
| ユーザー |  | 
| 提出日時 | 2021-07-09 23:10:53 | 
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) | 
| 結果 | 
                                MLE
                                 
                             | 
| 実行時間 | - | 
| コード長 | 589 bytes | 
| コンパイル時間 | 173 ms | 
| コンパイル使用メモリ | 12,672 KB | 
| 実行使用メモリ | 547,048 KB | 
| 最終ジャッジ日時 | 2024-07-01 18:13:43 | 
| 合計ジャッジ時間 | 6,050 ms | 
| ジャッジサーバーID (参考情報) | judge1 / judge3 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | -- * 3 | 
| other | MLE * 1 -- * 26 | 
ソースコード
import numpy as np
N, K, P = map(int, input().split())
A = list(map(int, input().split()))
B = list(map(int, input().split()))
s = [0]*(10**7+1)
t = [0]*(10**7+1)
fft_len = 2**24
for a in A:
    s[a] += 1
for b in B:
    t[b] += 1
s = np.array(s, dtype=np.int32)
t = np.array(t, dtype=np.int32)
Fs = np.fft.rfft(s, fft_len)
Ft = np.fft.rfft(t, fft_len)
Fst = Fs*Ft
st = np.fft.irfft(Fst, fft_len)
st = list(np.rint(st))
ans = [0]*P
for i, v in enumerate(st):
    ans[i % P] += int(v)
cnt = 0
for i in range(P):
    cnt += int(ans[i])
    if cnt >= K:
        print(i)
        break
            
            
            
        