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)