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ări
1 ≤ n ≤ 100.000
elementele vectorului vor fi mai mici decât 1.000.000.000
Răspunsuri la întrebare
Răspuns de
1
#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;
}
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;
}
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Chimie,
8 ani în urmă
Limba română,
9 ani în urmă
Informatică,
9 ani în urmă
Limba rusă,
9 ani în urmă
Matematică,
9 ani în urmă