2765 - Check Color

De la Universitas MediaWiki

Cerință

Orice culoare poate fi reprezentată drept o combinație de intensități de roșu (RED), verde (GREEN) și albastru (BLUE). Calculatorul tău folosește, cel mai probabil, culori reprezentate pe 24 de biți, câte 8 rezervați fiecărei dintre cele trei culori anterior menționate. Dându-se trei numere, R, G și B, verificați dacă acestea pot reprezenta o culoare sau o nuanță de gri. O culoare se consideră nuanță de gri dacă și numai dacă diferența dintre oricare două coduri ce reprezintă culorile primare nu depășește 10.

Date de intrare

Programul citește de la tastatură trei numere întregi, R, G și B.

Date de ieșire

Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restricțiilor impuse." și programul va afișa pe ecran:

  • NU E CULOARE dacă R, G și B nu pot reprezenta o culoare;
  • CULOARE dacă R, G și B pot reprezenta o culoare, dar nu o nuanță de gri;
  • GRI dacă R, G și B pot reprezenta o nuanță de gri;

În caz contrar, se va afișa pe ecran: "Datele de intrare nu corespund restricțiilor impuse."

Restricții și precizări

  • -1000 ≤ R, G, B ≤ 1000;
  • 0 ≤ Rv, Gv, Bv ≤ 255 – unde v înseamnă valid.

Exemplul 1

Intrare
0 128 256
Ieșire
NU E CULOARE

Exemplul 2

Intrare
118
128
255
Ieșire
Datele de intrare corespund restricțiilor impuse.
CULOARE

Exemplul 3

Intrare
118
119
120
Ieșire
Datele de intrare corespund restricțiilor impuse.
GRI

Rezolvare

Rezolvare ver. 1

def validare(R, G, B):
    # Verifică dacă R, G și B se află în intervalul [-1000, 1000]
    if -1000 <= R <= 1000 and -1000 <= G <= 1000 and -1000 <= B <= 1000:
        return True
    return False


def verifica_culoare(R, G, B):
    a = [R, G, B]
    # Sortează vectorul a pentru a putea calcula diferența dintre cel mai mare și cel mai mic element
    a.sort()
    dif = a[2] - a[0]
    if 0 <= a[0] <= 255 and 0 <= a[2] <= 255:
        # Verifică dacă diferența dintre cel mai mare și cel mai mic element este mai mică sau egală cu 10
        if dif <= 10:
            return 'GRI'
        else:
            return 'CULOARE'
    else:
        return 'NU E CULOARE'


# Verificarea daca codul este executat direct sau este importat ca un modul
if __name__ == "__main__":
    R = int(input("Introduceti R: "))
    G = int(input("Introduceti G: "))
    B = int(input("Introduceti B: "))
    if validare(R, G, B):
        # Daca datele de intrare sunt valide, afiseaza un mesaj de confirmare si apeleaza functia verifica_culoare cu parametrii specificati
        print("Datele de intrare corespund restricțiilor impuse.")
        print(verifica_culoare(R, G, B))
    else:
        # Daca datele de intrare nu sunt valide, afiseaza un mesaj de eroare
        print("Datele de intrare nu corespund restricțiilor impuse.")