Hi, can someone point out where my code gives me an incorrect answer for the problem
spoj.pl/problems/WEIGHT/ . My code is as follows. Any kind of help would be appreciated.
#define ull long long
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int n;
scanf("%d",&n);
int N=n;
int ar[n];
while(N--)
scanf("%d",&ar[n-1-N]);
int wt[n];
wt[0]=1;
if(n==1)
{printf("%d\n",ar[0]);continue;}
wt[1]=2;
if(n==2)
{printf("%d\n",(ar[0]+2*ar[1]));continue;}
bool flag[n];
for(int i=0;i<n;++i)
flag[i]=1;
for(int i=2;i<n;)
{
if(ar[i]<0)
{
int j=i+1;ull s=0;
while(j<n && ar[j]>=0)
{
s+=ar[j++];
}
if(s+ar[i]>=0)
{
flag[i]=1;
//wt[i]=wt[i-1]+1;
}
else
{
flag[i]=0;
//wt[i]=2;
}
i=j;
}
else
{
flag[i]=1;
//wt[i]=wt[i-1]+1;
++i;
}
}
ull sum=ar[0]+2*ar[1];
for(int i=2;i<n;++i)
{
if(flag[i])
{
wt[i]=wt[i-1]+1;
sum+=(wt[i]*ar[i]);
}
else
{
wt[i]=2;
sum+=(2*ar[i]);
}
}
printf("%lld\n",sum);
}
}