標題の回答で以下のコードではテストケースが2件通らないので反例を教えて頂きたいです。問題自体は別解で解けているのですが、後述のコードで通らない理由が知りたい点です。
問
太さが無視できる棒がN本あります.i番目の棒の長さはAiです.
すぬけ君は,これらの棒から4本の異なる棒を選び,それらの棒を辺として長方形(正方形を含む)を作りたいです. 作ることができる最大の長方形の面積を求めてください.
制約
4≤N≤10^5
1≤Ai≤10^9
Aiは整数
入力は以下の形式で標準入力から与えられる。
N
A1 A2 ... AN
すぬけ君が作ることのできる最大の長方形の面積を出力せよ.
ただし,長方形を作れない場合は,0を出力せよ.
以下コード
N = int(input())
a = list(map(int,input().split()))
c = {}
d = [0,0]
ans = 0
for i in a:
if i not in c:
c[i]=0
c[i]+=1
for i,v in zip(c.keys(),c.values()):
if v >= 4:
ans = max(ans,i**2)
elif v >= 2:
d.append(i)
d.sort(reverse = True)
if len(d) <= 3:
ans = max(ans,0)
else:
ans = max(ans,d[0]*d[1])
print(ans)
以上よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/06 15:52