Fotos de Relíquias

Problem Link

Solution by Mr.Olimpia100 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


« Back to problem