# PBinfo #606 – Culori – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: deivid

## Enunț

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 culori.in 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 culori.out 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
culorile vagoanelor sunt identificate prin numere naturale mai mici decât 1.000.000.000

Exemplul 1:
culori.in

5
2 2 1 6 6
culori.out

3
DA
Exemplul 2:
culori.in

5
2 2 6 2 6
culori.out

2
NU

## Cod sursă C++

```cpp
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("culori.in");
ofstream fout("culori.out");
int n , v[1005], c[1005], nrc;
int main()
{
	fin >> n ; 
	for(int i = 1 ;i <= n ; ++i)
		fin >> v[i];
	nrc = 1, c[1] = v[1];
	bool frumos = true;
	for(int i = 2 ; i <= n ; ++i)
		if(v[i] != v[i-1])
		{
			int poz = 0;
			for(int j = 1 ; j <= nrc && !poz ; j ++)
				if(c[j] == v[i])
					poz = j;
			if(poz == 0)
				c[++nrc] = v[i];
			else
				frumos = false;
		}
	fout << nrc << "\n";
	if(frumos)
		fout << "DA";
	else
		fout << "NU";
	return 0;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/606)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/606/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-606/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
