Pagini recente » Cod sursa (job #640976) | Cod sursa (job #966881) | Registru diplome | Cod sursa (job #941514) | Cod sursa (job #247060)
Cod sursa(job #247060)
input = open("nrtri.in").readlines()
n = int(input[0])
sticks = map(int, input[1].strip().split(" "))
assert len(sticks) == n
sticks.sort()
c = [0] * 60001
for s in sticks:
c[s] += 1
l = [0] * 60001
for i in xrange(1, len(l)):
l[i] = l[i - 1] + c[i]
sticks = list(set(sticks))
sticks.sort()
res = 0
for i in xrange(0, len(sticks)):
a = sticks[i]
for b in sticks[i + 1:]:
res += (l[a + b] - l[b]) * c[a] * c[b]
res += c[a] * c[b] * (c[b] - 1) / 2
for a in sticks:
res += (l[2 * a] - l[a]) * c[a] * (c[a] - 1) / 2
res += c[a] * (c[a] - 1) * (c[a] - 2) / 6
open("nrtri.out", "w").write("%ld\n" % res)