Cod sursa(job #806698)
Utilizator | Armand Nicolicioiu ArmandNM | Data | 3 noiembrie 2012 12:28:04 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 85 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.46 kb |
#include <fstream>
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
int v[6000002],best[6000002],n,i,inc,sf,lungime;
int maxim(int x, int y)
{
if (x>y) { inc=i; return x; }
else return y;
}
int main()
{
f>>n;
f>>v[1];
best[1]=v[1];
lungime=v[1];
for(i=2;i<=n;i++)
{
f>>v[i];
best[i]=maxim(v[i],v[i]+best[i-1]);
if (best[i]>lungime)
{
lungime=best[i];
sf=i;
}
}
g<<lungime<<" "<<inc<<" "<<sf;
}