ABC143 D - Triangles
https://atcoder.jp/contests/abc143/tasks/abc143_d
提出
TLE
code: python
import itertools
n = int(input())
l = list(map(int, input().split()))
ans = 0
for sticks in itertools.combinations(l, 3):
if (sticks0 < sticks1 + sticks2 and
sticks1 < sticks0 + sticks2 and
sticks2 < sticks0 + sticks1):
ans += 1
print(ans)
解答
code: python
from bisect import bisect_left
N = int(input())
L = sorted(list(map(int, input().split())))
ans = 0
for i in range(N): # 最短
for j in range(i + 1, N): # 真ん中
ans += bisect_left(L, Li + Lj) - (j + 1) # 最長が取れる範囲(最長のインデックス - 真ん中+1)
print(ans)
テーマ
#bisect
メモ
aが最大辺のとき三角形の成立条件は b+c < a
Python標準ライブラリ:順序維持のbisect
AtCoder ABC 143 D - Triangles (茶色, 400 点)
ABC 143: D問題の解説 (Python3)
ABC143 D - Triangles
TLE
code: python
n = int(input())
l = list(map(int, input().split()))
ans = 0
for i in range(n):
for j in range(i+1, n):
for k in range(j+1, n):
side1 = li
side2 = lj
side3 = lk
max_side = max(side1, max(side2, side3))
if (max_side < (side1 + side2 + side3) - max_side):
ans += 1
print(ans)
提出
code: python
n = int(input())
l = list(map(int, input().split()))
l.sort(reverse=True)
restl = []
for i in range(n-1, 0, -1):
# 最小の組み合わせだがそれ以外は条件を満たすとは限らない
restl.append(li + li-1)
print(l)
print(restl)