Pagini recente » Cod sursa (job #843107) | Cod sursa (job #2223349) | Cod sursa (job #1564040) | Cod sursa (job #115498) | Cod sursa (job #1363036)
#include <iostream>
#include <fstream>
using namespace std;
int N, s[6000000], aux[6000000], _min[6000000];
ifstream in("ssm.in");
ofstream out("ssm.out");
int main()
{
int i, min = int(2e9), poz_min = 0, max = -min, poz_max = 0;
in >> N;
for(i = 1; i <= N; i++)
{
in >> s[i];
}
/* magic here*/
aux[1] = s[1];
_min[1] = s[1];
for(i = 2; i <= N; i++)
{
aux[i] = aux[i - 1] + s[i];
if(max < aux[i]) {
max = aux[i];
poz_max = i;
}
if(min > aux[i]) {
min = aux[i];
poz_min = i;
}
_min[i] = poz_min;
cout<<i<<" -> aux[i] = "<<aux[i]<<" _min[i] = "<<_min[i]<<" ==== min = "<<min<<" poz_min = "<<poz_min<<" poz_max = "<< poz_max <<"\n";
}
cout<<aux[poz_max] - aux[_min[poz_max]]<<" "<<_min[poz_max] + 1 <<" "<<poz_max<<"\n";
return 0;
}