0606 - Culori
Cerința
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
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
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
1 ≤ n ≤ 1000
Exemplul 1
input.txt:
5
2 2 1 6 6
output.txt:
3
DA
Exemplul 2
input.txt:
5
2 2 6 2 6
output.txt:
2
NU
Exemplul 3
input.txt:
9999999999
1 2 3
Output:
Constrangeri neindeplinite
Rezolvare
<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>