結果
問題 | No.120 傾向と対策:門松列(その1) |
ユーザー | ああいい |
提出日時 | 2022-05-22 20:07:55 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 142 ms / 5,000 ms |
コード長 | 564 bytes |
コンパイル時間 | 152 ms |
コンパイル使用メモリ | 82,176 KB |
実行使用メモリ | 77,312 KB |
最終ジャッジ日時 | 2024-09-20 12:51:24 |
合計ジャッジ時間 | 1,282 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 138 ms
77,056 KB |
testcase_01 | AC | 134 ms
77,056 KB |
testcase_02 | AC | 129 ms
77,312 KB |
testcase_03 | AC | 142 ms
76,928 KB |
ソースコード
T = int(input()) from collections import defaultdict def f(d,mid): tmp = 0 for i in d: v = d[i] tmp += min(mid,v) return tmp >= 3 * mid def calc(l): N = len(l) if N <= 2: return 0 d = defaultdict(int) for i in l: d[i] += 1 start = 0 end = N while end - start > 1: mid = end + start >> 1 if f(d,mid): start = mid else: end = mid return start for _ in range(T): N = int(input()) l = list(map(int,input().split())) print(calc(l))