Quantcast
Channel: CodeChef Discuss - latest questions
Viewing all articles
Browse latest Browse all 40121

can u please tell me why it is giving wrong answer for reign?

$
0
0

//http://www.codechef.com/problems/CHODE

include<iostream>

include<stdio.h>

using namespace std;

long long int max(long long int x,long long int y) { return (y > x)? y : x; }

long long int maxSubArraySum(long long int a[],long long int size,long long int k,long long int n) { long long int max_so_far =a[0]; long long int i,pos=0; long long int curr_max =a[0];

long long int sum=0; for (i=1; i < size; i++) { //curr_max = max(a[i], curr_max+a[i]); if(curr_max+a[i]>a[i]) { curr_max=curr_max+a[i]; //pos=i; } else { curr_max=a[i]; //pos=i; }

    //max_so_far = max(max_so_far, curr_max);
    if(max_so_far<curr_max)
    {
    max_so_far=curr_max;
    pos=i;
    }
    else
    max_so_far=max_so_far;
    //pos=i;

} //cout<<"pos="<<pos<<"\\n"; cout<<"max_so_far="&lt;&lt;max_so_far&lt;&lt;" \\n";="" return="" max_so_far;="" long="" long="" int="" max_so_far1="a[pos+k+1];" long="" long="" int="" curr_max1="a[pos+k+1];" for="" (i="pos+k+2;" i="" <="" n;="" i++)="" {="" curr_max1="max(a[i],curr_max1+a[i]);" if(curr_max1+a[i]="">a[i]) { curr_max1=curr_max1+a[i]; //pos=i; } else { curr_max1=a[i]; //pos=i; }

    //max_so_far = max(max_so_far, curr_max);
    if(max_so_far1<curr_max1)
    {
    max_so_far1=curr_max1;
    //pos=i;
    }
    else
    max_so_far1=max_so_far1;
    //max_so_far1= max(max_so_far1,curr_max1);

} //cout<<"max_so_far1="<<max_so_far1<<"\n"; sum=max_so_far+max_so_far1; return sum; }

long long int maxSubArraySum1(long long int a[],long long int size,long long int k,long long int n) { long long int max_so_far =a[n-1]; long long int i,pos=n-1; long long int curr_max =a[n-1];

long long int sum=0; for (i=n-2; i>=size; i--) { //curr_max = max(a[i], curr_max+a[i]); if(curr_max+a[i]>a[i]) { curr_max=curr_max+a[i]; //pos=i; } else { curr_max=a[i]; //pos=i; }

    //max_so_far = max(max_so_far, curr_max);
    if(max_so_far<curr_max)
    {
    max_so_far=curr_max;
    pos=i;
    }
    else
    max_so_far=max_so_far;
    //pos=i;

} //cout<<"pos="<<pos<<"\\n"; cout<<"max_so_far="&lt;&lt;max_so_far&lt;&lt;" \\n";="" return="" max_so_far;="" long="" long="" int="" max_so_far1="a[0];" long="" long="" int="" curr_max1="a[0];" for="" (i="1;i&lt;=pos-k-1;" i++)="" {="" curr_max1="max(a[i],curr_max1+a[i]);" max_so_far1="max(max_so_far1,curr_max1);" if(curr_max1+a[i]="">a[i]) { curr_max1=curr_max1+a[i]; //pos=i; } else { curr_max1=a[i]; //pos=i; }

    //max_so_far = max(max_so_far, curr_max);
    if(max_so_far1<curr_max1)
    {
    max_so_far1=curr_max1;
    //pos=i;
    }
    else
    max_so_far1=max_so_far1;

} //cout<<"max_so_far1="<<max_so_far1<<"\n"; sum=max_so_far+max_so_far1; return sum; }

int main() { long long int t,n,k,i; long long int sum,sum1; cin>>t; //t=in(); while(t--) { //max=max1=-1000000001; sum=sum1=0; cin>>n>>k; //n=in(); //k=in(); long long int a[n+1]; for(i=0;i<n;i++) cin="">>a[i]; //a[i]=in();

sum = maxSubArraySum(a,n-k-1,k,n);
sum1=maxSubArraySum1(a,k+1,k,n);
cout<<max(sum,sum1)<<"\n";
}
return 0;

}


Viewing all articles
Browse latest Browse all 40121

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>