Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <stdio.h>
- #include <string>
- #include <iostream>
- #include <set>
- #include <vector>
- using namespace std;
- int main(){
- ios::sync_with_stdio(false);
- cin.tie(0);
- long long n, k;
- cin >> n >> k;
- vector<long long> st;
- if (k * k != 1){
- st.push_back(1);
- while (st[st.size() - 1] < (long long)(10000000000000000LL)){
- st.push_back(st[st.size() - 1] * k);
- }
- }
- else {
- st.push_back(1);
- if (k != 1) st.push_back(-1);
- }
- multiset<long long> ms;
- long long cur_sum = 0;
- long long ans = 0;
- for (int i = 0; i < n; ++i){
- long long cur;
- cin >> cur;
- ms.insert(-cur_sum);
- cur_sum += cur;
- for (auto to : st){
- ans += ms.count(to - cur_sum);
- }
- }
- cout << ans << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement