Submission #1272071

#TimeUsernameProblemLanguageResultExecution timeMemory
1272071ahmd_ibraaaVudu (COCI15_vudu)C++20
42 / 140
832 ms78628 KiB
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace std;
using namespace __gnu_pbds;

#define ordered_set tree<int, null_type,less_equal<int>, rb_tree_tag,tree_order_statistics_node_update>
#define int long long
#define double long double
#define medal ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
#define fi first
#define sec second
#define endl '\n'

signed main(){
	int n;
	cin>>n;
	ordered_set ms;
	int a[n+1];
	for(int i=1; i<=n; i++){
		cin>>a[i];
	}
	int p; cin>>p;
	for(int i=1; i<=n; i++){
		a[i]-=p;
	}
	
	int ans = 0;
	int pref[n+1];
	pref[0] = 0;
	ms.insert(pref[0]);
	
	for(int i=1; i<=n; i++){
		pref[i] = pref[i-1] + a[i];
		int cnt = ms.order_of_key(pref[i]+1);
		ans += cnt;
		ms.insert(pref[i]);
	}
	cout<<ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...