1 solutions

  • 0
    @ 2024-12-11 0:25:37

    C :

    #include <stdio.h>
    #include <stdlib.h>
    #define maxn 100010
    
    int A[maxn];
    int dp[maxn];
    
    int main()
    {
        int N;
        scanf("%d",&N);
        for(int i = 0;i < N; i++)scanf("%d",&A[i]);
        int ans = A[0];
        dp[0]=A[0];
        for(int i = 1;i < N; i++) {
            if(dp[i-1]>0)dp[i] = dp[i-1] + A[i];
            else dp[i] = A[i];
            ans = ans < dp[i]?dp[i]:ans;
        }
        printf("%d\n",ans);
    
    
        return 0;
    }
    

    C++ :

    #include <iostream>
    #include <cstdlib>
    #include <algorithm>
    
    using namespace std;
    
    int n, li[10000000], sum = -0xfffff, l = 0;
    
    
    int main()
    {
    	cin >> n;
    	for (int i = 1; i <= n; i ++)
    		cin >> li[i];
    		
    	for (int i = 1; i <= n; i ++)
    	{
    		l += li[i];
    		if (l < 0)
    			l = 0;
    		sum = max (sum, l);
    	}
    	
    	cout << sum;
    	//system ("pause");
    	return 0;
    }
    

    Java :

    
    import java.util.Scanner;
    
    public class Main {
    
    	public static void main(String[] args) {
    		Scanner sc=new Scanner(System.in);
    		int n=sc.nextInt();
    		int[] A=new int[n];
    		for(int i=0;i<n;i++) A[i]=sc.nextInt();
    		int maxsum=A[0], premax=A[0];
    		for(int i=1;i<n;i++) {
    			if(premax>0) premax+=A[i];
    			else premax=A[i];
    			if(premax>maxsum) maxsum=premax;		
    		}
    		System.out.println(maxsum);
    	}
    
    }
    
    
    • 1

    Information

    ID
    699
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By