Mai intai trebuie sa te autentifici.
Cod sursa(job #1589748)
Utilizator | Data | 4 februarie 2016 13:15:52 | |
---|---|---|---|
Problema | Secventa 5 | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.91 kb |
#include <cstdio>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
typedef vector<unsigned int64_t> v_ll;
int64_t N, L, U, S, El, PEl;
int main(){
v_ll v;
freopen("secv5.in","r",stdin);
freopen("secv5.out","w",stdout);
scanf("%lld%lld%lld%lld",&N,&L,&U,&PEl);
int64_t h = 1; N--;
for(; N; --N){
scanf("%lld",&El);
if (El == PEl) h++;
else v.push_back(h), h = 1, PEl = El;
}
v.push_back(h);
for(int64_t i = L; i <= U; i++){
int64_t SPrim = 0;
if (i == 1){
for(int64_t j = 0; j < v.size(); j+= i){
SPrim += v[j]*(v[j]+1)/2;
}
}
else{
for(v_ll::iterator j = v.begin(); j < v.end()-i+1; j++){
SPrim += (*j) * (*(j+i-1));
}
}
S+= SPrim;
}
printf("%I64d",S);
return 0;
}