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
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")