• Source
    1. #include<bits/stdc++.h>
    2. #define sz 20005
    3.  
    4. using namespace std;
    5.  
    6. long dp[sz];
    7.  
    8. int main()
    9. {
    10. long koyta,route,i,j,mx_sum,sum,index1,index2,now,counter,mx_counter;
    11.  
    12. scanf("%ld",&koyta);
    13.  
    14. for(i=1;i<=koyta;i++)
    15. {
    16.  
    17. scanf("%ld",&route);
    18.  
    19. for(j=1;j<route;j++)
    20. {
    21. scanf("%ld",&dp[j]);
    22. }
    23.  
    24.  
    25. sum=mx_sum=0;
    26.  
    27. now = 1;
    28.  
    29. counter=mx_counter=0;
    30.  
    31. for(j=1;j<route;j++)
    32. {
    33. sum+=dp[j];
    34.  
    35. counter++;
    36.  
    37. if(sum<0)
    38. {
    39. sum = 0;
    40. counter = 0;
    41. now = j+1;
    42. }
    43. else if(sum>mx_sum)
    44. {
    45. mx_sum = sum;
    46. mx_counter = counter;
    47. index1 = now;
    48. index2 = j+1;
    49. }
    50. else if(sum==mx_sum && counter>mx_counter)
    51. {
    52. mx_counter = counter;
    53. index1 = now;
    54. index2 = j+1;
    55. }
    56. }
    57.  
    58. if(mx_counter==0)
    59. {
    60. printf("Route %ld has no nice parts\n",i);
    61. }
    62. else
    63. {
    64. printf("The nicest part of route %ld is between stops %ld and %ld\n",i,index1,index2);
    65. }
    66.  
    67. }
    68.  
    69. return 0;
    70. }
    71.