Advertisement
sam2912

Untitled

Jul 4th, 2022
293
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.62 KB | None | 0 0
  1. #define ll long long
  2.  
  3. class Solution {
  4. public:
  5.     int waysToSplit(vector<int>& nums) {
  6.         ll n = nums.size(), pref[100005], mod = 1e9+7;;
  7.         pref[0] = nums[0];
  8.         for(int i = 1; i < n; i++) pref[i] = pref[i-1]+nums[i];
  9.         int cnt = 0;
  10.         for(int i = 0; i < n-2; i++) {
  11.             ll left = pref[i];
  12.             ll rest = pref[n-1]-pref[i];
  13.             auto lb = lower_bound(pref+i+1,pref+n-1,2*left);
  14.             auto ub = upper_bound(pref+i+1,pref+n-1,rest/2+left);
  15.             if(ub-lb > 0) cnt += ub-lb;
  16.             cnt %= mod;
  17.         }
  18.        
  19.         return cnt%mod;
  20.     }
  21. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement