1 solutions
-
0
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