Cod sursa(job #3268817)
| Utilizator | Data | 17 ianuarie 2025 17:52:50 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.76 kb |
#include<fstream>
using namespace std;
ifstream in("ssm.in");
ofstream out("ssm.out");
int const INF=1e9;
int main()
{
int n,st=1,ss_c=0,ss_max=-INF,dr_f,st_f;
in>>n;
for(int i=1;i<=n;i++)
{
int x_i;
in>>x_i;
if(x_i>ss_c+x_i)
{
ss_c=x_i;
st=i;
}
else
ss_c+=x_i;
if(ss_c>ss_max)
{
ss_max=ss_c;
st_f=st;
dr_f=i;
}
else if(ss_c==ss_max)
if(i-st<dr_f-st_f)
{
st_f=st;
dr_f=i;
}
}
out<<ss_max<<" "<<st_f<<" "<<dr_f;
in.close();
out.close();
return 0;
}
