fbpx

Problema #606 – Culori – Rezolvari PBInfo

de Mihai-Alexandru

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
#include <bits/stdc++.h>

using namespace std;
ifstream cin("culori.in");
ofstream cout("culori.out");
int main()
{
    int n , a[1001] ,v[1001] , l = 1 , cnt = 0 , ok = 0;
    cin >> n;
    for(int i = 0 ; i < n ; ++i)
        cin >> a[i] , v[i]=a[i];
    sort(a , a+n);
    for(int i = 0 ; i < n ; ++i)
    {
        if(a[i]==a[i+1]) l++;
        else
        {
            int c = 0;
            for(int j = 0 ; j < n ; ++j)
            {
                if(v[j]==a[i]) c++;
                else if(c!=0) break;
            }
            if(c != l) ok = 1;
            cnt++;
            l = 1;
        }
    }
    cout << cnt << endl;
    if(ok == 0)cout << "DA";
    else cout << "NU";
    return 0;
}
Comentarii

S-ar putea sa iti placa