| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:为什么总是WrongAnswner?In Reply To:为什么总是WrongAnswner? Posted by:WarTalker at 2008-07-18 13:20:29 it seems to me that the recursive approach is not necessary...
> #include <stdio.h>
> #include <stdlib.h>
>
> void max_sum_left(int *array_num, int n, int *array_sum)
> {
> int sum = 0;
> int max_sum = array_num[0];
> array_sum[0] = array_num[0];
>
> int i;
> for (i = 1; i < n; ++i){
> sum += array_num[i];
> if (max_sum < sum) max_sum = sum;
> if (0 > sum) sum = 0;
> array_sum[i] = max_sum;
> }
> };
>
> void max_sum_right(int *array_num, int n, int *array_sum)
> {
> int sum = 0;
> int max_sum = array_num[n - 1];
> array_sum[n - 1] = array_num[n - 1];
>
> int i;
> for (i = n - 2; i > -1; --i){
> sum += array_num[i];
> if (max_sum < sum) max_sum = sum;
> if (0 > sum) sum = 0;
> array_sum[i] = max_sum;
> }
> };
>
> int max_sum(int *array_num, int n)
> {
> int *array_left = (int *)malloc(sizeof(int) * n);
> int *array_right = (int *)malloc(sizeof(int) * n);
>
> max_sum_left(array_num, n, array_left);
> max_sum_right(array_num, n, array_right);
>
> int sum = array_left[0] + array_right[1];
> int max_sum = sum;
>
> int i;
> for (i = 1; i < n - 1; ++i){
> sum = array_left[i] + array_right[i + 1];
> max_sum = (sum > max_sum) ? sum : max_sum;
> }
>
> free(array_left);
> free(array_right);
> return max_sum;
> };
>
> void loop()
> {
> int n;
> scanf("%d", &n);
>
> int * array_num;
> array_num = (int *) malloc(sizeof(int) * n);
>
> int i = 0;
> int in;
> while (i < n){
> scanf("%d", &in);
> array_num[i] = in;
> ++i;
> }
>
> printf("%d\n", max_sum(array_num, n));
> free(array_num);
> };
>
> int main(void)
> {
> int n;
> scanf("%d", &n);
>
> int i = 0;
> while (i++ < n){
> getchar();
> loop();
> }
> return 0;
> };
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator