0606 - Culori
Cerința[edit | edit source]
Gigel a primit de la bunicul său un trenuleț electric cu n
vagoane colorate în diverse culori, identificate prin numere întregi. Gigel consideră că trenul este frumos colorat dacă toate vagoanele colorate la fel sunt învecinate. Acum vă roagă să-i spuneți cu câte culori diferite au fost colorate vagoanele și dacă trenul este frumos colorat.
Date de intrare[edit | edit source]
Fișierul de intrare input.txt
conține pe prima linie numărul n
, iar pe a doua linie n
numere naturale nenule, reprezentând în ordine culorile vagoanelor din care este compus trenulețul.
Date de ieșire[edit | edit source]
Fișierul de ieșire output.txt
va conține pe prima linie numărul C
de culori diferite, iar pe a doua linie mesajul DA
sau NU
, după cum trenul este sau nu frumos colorat.
Restricții și precizări[edit | edit source]
1 ≤ n ≤ 1000
Exemplul 1[edit | edit source]
input.txt:
5
2 2 1 6 6
output.txt:
3
DA
Exemplul 2[edit | edit source]
input.txt:
5
2 2 6 2 6
output.txt:
2
NU
Exemplul 3[edit | edit source]
input.txt:
9999999999
1 2 3
Output:
Constrangeri neindeplinite
Rezolvare[edit | edit source]
<syntaxhighlight lang="python3" line="1"> def ver(n):
if not(1<=n<=1000): print("Constrangeri neindeplinite") exit()
with open("input.txt", 'r') as fin, open("output.txt", 'w') as fout:
n = int(fin.readline()) ver(n) v = list(map(int, fin.readline().split())) c = [0] * 1005 nrc = 1 c[1] = v[0] frumos = True
for i in range(1, n): if v[i] != v[i - 1]: poz = 0 for j in range(1, nrc + 1): if c[j] == v[i]: poz = j break if poz == 0: nrc += 1 c[nrc] = v[i] else: frumos = False
fout.write(str(nrc) + "\n") if frumos: fout.write("DA") else: fout.write("NU")
</syntaxhighlight>