Pagini recente » Cod sursa (job #2776189) | Cod sursa (job #1698459) | Cod sursa (job #1037476) | Cod sursa (job #1247383) | Cod sursa (job #481112)
Cod sursa(job #481112)
#include<fstream>
#include<iostream>
#include<vector>
using namespace std;
int main()
{
long n,x,sum,maxsum=-60000,prev,bst;
fstream fin("ssm.in", fstream::in);
fstream fout("ssm.out", fstream::out);
//vector<long> sums, bst;
pair<long, long> min;
pair<long, long> max;
fin>>n;
//bst.reserve(n);
/*for(int i=0; i<n; ++i)
{
fin>>x;
//cout<<x<<" ";
sum+=x;
sums.push_back(sum);
}*/
//cout<<endl;
fin>>x;
min.first=0;
min.second=0;//sums[0];
max.first=0;
maxsum=bst=sum=prev=x;
for(int i=1; i<n; ++i)
{
fin>>x;
if(sum<min.second)
{
min.first=i;
min.second=sum;
}
sum+=x;
bst=sum-min.second;
if(bst>=maxsum)
{
max.first=min.first;
max.second=i;
maxsum=bst;
}
prev=x;
}
fout<<maxsum<<" "<<max.first+1<<" "<<max.second+1<<endl;
//cout<<endl<<maxsum<<" "<<max.first+1<<" "<<max.second+1<<endl;
fin.close();
fout.close();
return 0;
}