Cod sursa(job #247062)

Utilizator wickedmanCristian Strat wickedman Data 22 ianuarie 2009 04:25:54
Problema Numarare triunghiuri Scor 95
Compilator py Status done
Runda Arhiva de probleme Marime 0.58 kb
fd = open("nrtri.in")
n = int(fd.next())
sticks = [ int(s) for s in fd.next().strip().split(" ") ]

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)