➤ 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!!
