# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
948020 | 2024-03-17T13:41:54 Z | Zena_Hossam | Vudu (COCI15_vudu) | C++14 | 0 ms | 0 KB |
#include <bits/stdc++.h> #include <ext/pb_ds/tree_policy.hpp> #include <ext/pb_ds/assoc_container.hpp> #define ll long long using namespace std; namespace __gnu_pbds { typedef tree<ll, null_type, less_equal<ll>, rb_tree_tag, tree_order_statistics_node_update> ordered_set; } using namespace __gnu_pbds; #define fi ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); //#define ll double #define ll1 long long #define F first #define S second #define sz size() #define all(s) s.begin(),s.end() #define all1(s) s.rbegin(),s.rend() int arr[1000001];ordered_set s;int x;ll c=0,ss=0t,cc;int n;int i,j; int main() { //freopen("stdin.in","r",stdin);freopen("stdout.out","w",stdout); //cin>>T;ll oo=0; cin>>n; for(i=0; i<n; i++) { cin>>arr[i]; } cin>>x; for(i=0; i<n; i++) { ss+=(arr[i]-x); // cout<<c<<" "; for(j=0;j<=min(i,100);j++){ cc+=(arr[j]-x); if(cc<ss+1)c++; } c+=(s.order_of_key(ss+1)); if(ss>=0)c++; if(i>100) s.insert(ss); // cout<<c<<"\n"; } cout<<c; }