Fotos de Relíquias
Problem LinkSolution by Mr.Olimpia — 100 pts
Code / Notes
#include <bits/stdc++.h>
using namespace std;
int main() {
long long N;
cin >> N;
vector<long long>L(N);
vector<long long>uns;
for(int i=0; i<N; i++){
cin >> L[i];
if(L[i]==1){
uns.push_back(i);
}
}
long long ans=0;
for(int i=0; i < uns.size(); i++){
if(i==0){
if(uns.size()==1){
ans+=(uns[i]+1)*(N-uns[i]); // 0 0 0 0 1 0 0
}
else{
ans+=(uns[i+1]-uns[i])*(uns[i]+1); // 0 0 1 0 0 0 1
}
}
else if(i==uns.size()-1){
ans+=(uns[i]-uns[i-1])*(N-uns[i]);//1 0 0 1 0
}
else{
ans+=((uns[i+1]-uns[i])*(uns[i]-uns[i-1]));
}
}
cout << ans;
}
Last updated 1 month, 4 weeks ago