Cod sursa(job #3345367)
| Utilizator | Data | 9 martie 2026 13:27:30 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.54 kb |
#include <iostream>
#include <vector>
#include <fstream>
#include <limits.h>
using namespace std;
int main(){
ifstream in;
ofstream out;
in.open("ssm.in");
out.open("ssm.out");
vector<int> v;
int n;
in>>n;
for(int i = 0; i<n;i++)
{
int x;
in >> x;
v.push_back(x);
}
vector<int> dp(n,0);
int maxi = dp[0];
dp[0]=v[0];
for(int i = 1; i<n;i++){
if(dp[i-1]<0)dp[i]=v[i];
else dp[i]=dp[i-1]+v[i];
if(dp[i]>maxi)maxi = dp[i];
}
out << dp[n-1];
}