Submission #648975

#TimeUsernameProblemLanguageResultExecution timeMemory
648975tvladm2009Vudu (COCI15_vudu)C++14
0 / 140
416 ms65536 KiB
#include <bits/stdc++.h>

#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;

template<class T> using oset = tree<T, null_type, std::less<T>, rb_tree_tag,tree_order_statistics_node_update>;

int const nmax = 1000000;

long long v[5 + nmax], sp[5 + nmax];

signed main() {
  std::ios_base::sync_with_stdio(0);
  std::cin.tie(0);

  long long n, p;
  std::cin >> n;
  for(int i = 1;i <= n; i++)
    std::cin >> v[i];
  std::cin >> p;
  for(int i = 1;i <= n; i++) {
    v[i] -= p;
    sp[i] = sp[i - 1] + v[i];
  }

  //oset<long long> s;
  //s.insert(0);
  long long ans = 0;
  //for(int i = 1;i <= n; i++) {
    // ans += s.order_of_key(sp[i]);
    // s.insert(sp[i]);
  //}
  std::map<long long, long long> mp;
  mp[0]++;
  for(int i = 1;i <= n; i++) {
    ans += mp.count(sp[i]);
    mp[sp[i]]++;
  }
  std::cout << ans;
  return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...