Advertisement
Guest User

sum

a guest
Sep 18th, 2019
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.04 KB | None | 0 0
  1. #include<iostream>
  2. #include<climits>
  3. using namespace std;
  4.  
  5.  
  6. int max_subarray_sum(int a[],int n,int test)
  7. {
  8.     int sum=0,maxsum=INT_MIN, start =0, end = 0, s=0; ;
  9.     for(int i=0;i<n;i++)
  10.     {
  11.         sum=sum+a[i];
  12.         if(sum>=maxsum)
  13.         {
  14.             if(sum>maxsum || (sum==maxsum && i-s>end-start))
  15.             {
  16.                   start = s;
  17.                   end = i;
  18.             }
  19.             maxsum=sum;
  20.  
  21.         }
  22.         if(sum<0)
  23.         {
  24.             sum=0;
  25.             s = i + 1;
  26.         }
  27.     }
  28.     if(maxsum>0)
  29.     {
  30.         cout<<"The nicest part of route "<<test<<" is between stops "<<start+1<<" and "<<end+2<<endl;
  31.     }
  32.     else
  33.         cout<<"Route "<<test<<" has no nice parts"<<endl;
  34.  
  35.  
  36. }
  37.  
  38. int main()
  39. {
  40.     int test;
  41.     cin>>test;
  42.     for(int t=1;t<=test;t++)
  43.     {
  44.         int stops;
  45.         cin>>stops;
  46.         int arr[stops],maxsum;
  47.         for(int i=0;i<stops-1;i++)
  48.         {
  49.             cin>>arr[i];
  50.         }
  51.         max_subarray_sum(arr,stops-1,test);
  52.     }
  53.     return 0;
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement