0661 - Triunghiuri1

From Bitnami MediaWiki

Cerință

Se dau n numere naturale distincte. Determinaţi câte triunghiuri distincte pot avea lungimile laturilor printre aceste numere.

Date de intrare

Programul citește de la tastatură numărul n, iar apoi cele n numere naturale.

Date de ieșire

Programul va afișa pe ecran numărul C, reprezentând numărul de triunghiuri determinate

Restricții de precizări

  • 1 ⩽ n ⩽ 1000
  • cele n numere citite vor fi mai mici decât 1.000.000

Exemplu

Exemplul 1

Intrare
5
3 5 10 7 6
Ieșire
Datele introduse corespund restricțiilor impuse.
7

Rezolvare ver. 1

<syntaxhighlight lang="python" line="1" start="1"> def validare(n, nums):

   return n.isdigit() and 1 <= int(n) <= 1000


def triunghuri(n, nums):

   nums = []
   for i in range(n):
       count = 0
   for i in range(n-2):
       for j in range(i+1, n-1):
           for k in range(j+1, n):
               if nums[i]+nums[j] > nums[k] and nums[i]+nums[k] > nums[j] and nums[j]+nums[k] > nums[i]:
                   count += 1
   print("Numărul de triunghiuri distincte este:", count)


if __name__ == '__main__':

   n = int(input("Introduceți numărul de elemente: "))
   nums = (int(input("Introduceți numărul: ")))


if validare(n, nums):

   n, nums = int(n), int(nums)
   print("Datele introduse corespund restricțiilor impuse.")
   triunghuri(n, nums)

else:

   print("Datele introduse nu corespund restricțiilor impuse.")

</syntaxhighlight>