Informatică, întrebare adresată de fameoo, 8 ani în urmă

PROBLEMA 578 de pe pbinfo. va multumesc
Cerința
Se dă un vector cu n elemente, numere naturale. Determinați câte secvențe ale vectorului au toate elementele egale.

Date de intrare
Programul citește de la tastatură numărul n, apoi cele n elemente ale vectorului.

Date de ieșire
Programul va afișa pe ecran numărul C, reprezentând valoarea cerută.

Restricții și precizări1 ≤ n ≤ 100.000elementele vectorului vor fi mai mici decât 1.000.000.000
Exemplu
Intrare

5 4 3 3 3 5
Ieșire

8 Explicație
Cele 8 secvențe sunt: (4), (3), (3 3), (3 3 3), (3 ), (3 3), (3), (5).

Răspunsuri la întrebare

Răspuns de pmarian98
4

Răspuns:

#include <iostream>

using namespace std;

unsigned long long c,n,a[100000];

int main()

{

   cin>>n;

   cin>>a[0];

   int L=1;

   for(int i=1;i<n;i++)

   {

       cin>>a[i];

       if(a[i]==a[i-1])

           L++;

       else

       {

           c+=(L*(L-1))/2;

           L=1;

       }

   }

   if(L>1)

       c+=(L*(L-1))/2;

   if(L==n)

       c=n*(n-1)/2;

   cout<<n+c;

   return 0;

}

Explicație:

Alte întrebări interesante