➤ Problem Link : 466C. Number of Ways
✅ C++ Solution :
#include<bits/stdc++.h> using namespace std; #define ll long long int int main() { int n; cin>>n; ll arr[n]; bool cum[n]; ll value[n]; ll sum=0; memset(cum,0,sizeof(cum)); ll cnt=0; for(int i=0;i<n;i++) { cin>>arr[i]; sum+=arr[i]; } if(sum%3!=0) { cout<<"0"; return 0; } ll val=0; for(int i=n-1;i>=0;i--) { val+=arr[i]; if(val==sum/3) cum[i]=1; else cum[i]=0; if(i==n-1) value[i]=cum[i]; else value[i]=cum[i]+value[i+1]; } val=0; for(int i=0;i<n-2;i++) { val+=arr[i]; if(val==sum/3) cnt+=value[i+2]; } cout<<cnt; }
Thank you for your patience reading. If you enjoyed this post, I’d be very grateful if you’d help it spread by emailing it to a friend, or sharing it on Whatsapp or Facebook.
😇Happy Learning!!