Cod sursa(job #3164381)
| Utilizator | Data | 2 noiembrie 2023 23:47:48 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.73 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
int main()
{
int N;
f>>N;
int a[N];
for (int i = 1; i <= N; i++)
f >> a[i];
long long sum;
long long summax;
int st = 1;
int dr = 1;
int m = 1;
sum = a[1];
summax = a[1];
if(sum<0)
{
m = 2;
sum = 0;
}
for(int i = 2; i <= N; i++)
{
sum = sum + a[i];
if(sum > summax)
{
st = m;
dr = i;
summax = sum;
}
if(sum < 0)
{
sum = 0;
m = i + 1;
}
}
g << summax << " " << st << " " << dr;
}
