Informatică, întrebare adresată de bogdanleague, 9 ani în urmă

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 Antonia12335
7
#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;
Asa cred, dar mai trebuie continuat putin.


stassahul: E bun, dar inchide parantezele la main
Antonia12335: Am inteles.
Alte întrebări interesante