Advertisement
Guest User

Untitled

a guest
Feb 23rd, 2017
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.78 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <stdio.h>
  3. #include <string>
  4. #include <iostream>
  5. #include <set>
  6. #include <vector>
  7.  
  8. using namespace std;
  9.  
  10. int main(){
  11. ios::sync_with_stdio(false);
  12. cin.tie(0);
  13.  
  14. long long n, k;
  15.  
  16. cin >> n >> k;
  17. vector<long long> st;
  18.  
  19. if (k * k != 1){
  20. st.push_back(1);
  21. while (st[st.size() - 1] < (long long)(10000000000000000LL)){
  22. st.push_back(st[st.size() - 1] * k);
  23. }
  24. }
  25. else {
  26. st.push_back(1);
  27. if (k != 1) st.push_back(-1);
  28. }
  29.  
  30. multiset<long long> ms;
  31. long long cur_sum = 0;
  32.  
  33. long long ans = 0;
  34.  
  35. for (int i = 0; i < n; ++i){
  36. long long cur;
  37. cin >> cur;
  38.  
  39. ms.insert(-cur_sum);
  40. cur_sum += cur;
  41.  
  42. for (auto to : st){
  43. ans += ms.count(to - cur_sum);
  44. }
  45. }
  46.  
  47. cout << ans << endl;
  48.  
  49. return 0;
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement