Submission #951845

#TimeUsernameProblemLanguageResultExecution timeMemory
951845MohamedAhmed04Vudu (COCI15_vudu)C++17
126 / 140
622 ms65536 KiB
#include <bits/stdc++.h>

using namespace std ;

#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>

using namespace __gnu_pbds;

template<class T> using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update> ;

const int MAX = 1e6 + 10 ;

int n , p ;
int arr[MAX] ;

int main()
{
    ios_base::sync_with_stdio(0) ;
    cin.tie(0) ;
    cin>>n ;
    for(int i = 1 ; i <= n ; ++i)
        cin>>arr[i] ;
    cin>>p ;
    for(int i = 1 ; i <= n ; ++i)
        arr[i] -= p ;
    ordered_set< pair<long long, int> >s ;
    s.insert({0 , 0}) ;
    long long sum = 0 , ans = 0 ;
    for(int i = 1 ; i <= n ; ++i)
    {
        sum += arr[i] ;
        ans += s.order_of_key({sum+1 , -1}) ;
        s.insert({sum , i});
    }
    return cout<<ans<<"\n" , 0 ;
}
#Verdict Execution timeMemoryGrader output
Fetching results...