2766 - Gradient

De la Universitas MediaWiki

Cerinţa

Dându-se două culori valide (reprezentate fiecare prin câte 3 numere) și numărul n, calculați toate culorile prin care va trece prima pentru a deveni a doua.

Date de intrare

Programul citește de la tastatură numerele R1, G1, B1, R2, G2, B2, n, în această ordine, cu semnificația din enunț.

Date de ieşire

Programul va afișa pe ecran n perechi (câte una pe linie) de câte trei numere fiecare, separate printr-o virgulă și un spațiu (, ), având semnificația din enunț.

Restricții și precizări

  • 2 ≤ n ≤ 1000;
  • Culorile inițiale sunt valide;
  • Valorile primei culori nu sunt neapărat mai mici decât valorile celei de a doua.

Exemplu

Intrare
0 10 20 0 40 80 4
Iesire
0, 10, 20
0, 20, 40
0, 30, 60
0, 40, 80

Explicație

Acesta este exemplul descris în enunț.

…sau:

Intrare
0 0 0 23 2 20 3
Ieșire
0, 0, 0
11, 1, 10
23, 2, 20

…sau:

Intrare
23 2 20 0 0 0 3
Ieșire
23, 2, 20
11, 1, 10
0, 0, 0
def culori_intermediare(R1, G1, B1, R2, G2, B2, n):
    # Calculam pasul pentru fiecare culoare
    pas_R = (R2 - R1) / (n - 1)
    pas_G = (G2 - G1) / (n - 1)
    pas_B = (B2 - B1) / (n - 1)

    # Generam culorile intermediare
    for i in range(n):
        R = round(R1 + i * pas_R)
        G = round(G1 + i * pas_G)
        B = round(B1 + i * pas_B)
        print(f"{R}, {G}, {B}")

if __name__ == "__main__":
    # Citim datele de intrare
    R1, G1, B1, R2, G2, B2, n = map(int, input().split())

    # Apelam functia pentru a calcula culorile intermediare
    culori_intermediare(R1, G1, B1, R2, G2, B2, n)