1573 - Verif Progresie

De la Universitas MediaWiki
Versiunea pentru tipărire nu mai este suportată și poate avea erori de randare. Vă rugăm să vă actualizați bookmarkurile browserului și să folosiți funcția implicită de tipărire a browserului.

Cerința

Se dau n valori naturale. Stabiliți dacă există o progresie aritmetică cu rația număr natural mai mare decât 1 din care să facă parte toate aceste valori.

Date de intrare

Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spații.

Date de ieșire

Programul va afișa pe ecran mesajul DA , dacă există progresia aritmetică cerută, respectiv NU în caz contrar.

Restricții și precizări

  • 1 ≤ n ≤ 2500;
  • cele n numere citite vor fi mai mici decât 2.000.000.000;

Exemplul 1

Intrare
6
2 10 12 16 20 18
Ieșire
Datele de intrare corespund restricțiilor impuse.
DA

Exemplul 2

Intrare
0
0
Ieșire
Datele de intrare nu corespund restricțiilor impuse.

Rezolvare

#1573 - Verif Progresie
def progresie_aritmetica(numere): # definim o functie ce cauta o progresie progresie_aritmetica
                                  # formata din trei elemente intr-o lista de numere
    n = len(numere)
    if n < 3:
        return None
    for i in range(n):
        for j in range(i+1, n):
            for k in range(j+1, n):
                if numere[i] + numere[k] == 2 * numere[j]:
                    return [numere[i], numere[j], numere[k]]
    return None

if __name__ == "__main__":
    n = int(input("Introduceți numărul de valori: ")) # citim numărul de valori și lista de numere 
                                                      # de la tastatură
    numere = list(map(int, input("Introduceți valorile, separate prin spațiu: ").split()))
    if n < 1 or n > 2500 or max(numere) > 2000000000: # verificarea restrictiilor
        print("Datele de intrare nu corespund restricțiilor impuse.")
        if progresie_aritmetica(numere): # apelam functia progresie_aritmetica si afisam DA daca 
                                         # exista o progresie aritmetica si NU in caz contrar
            print("NU")
    else:
        print("Datele de intrare corespund restricțiilor impuse.")
        print("DA")