Pagini recente » Cod sursa (job #1722634) | Cod sursa (job #342493) | Cod sursa (job #3292973) | Cod sursa (job #2609165) | Cod sursa (job #1321834)
#include <vector>
#include <fstream>
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
pair <int, pair <int, int> > determine ( vector <int> &s)
{
int i, n=s.size();
s.insert(s.begin(),0);
pair <int, int> sol,soltemp;
int temps=s[1];
soltemp.first=soltemp.second=1;
int best=s[1];
sol=soltemp;
for(i=2;i<=n;i++)
{
if(temps<0)
{
if(s[i]>temps)
{
temps=s[i];
soltemp.first=soltemp.second=i;
}
}
else
{
temps+=s[i];
soltemp.second=i;
}
if(temps>best )
{
best=temps;
sol=soltemp;
}
}
return make_pair(best,sol);
}
vector <int> s;
int main()
{
int n,x;
f>>n;
for(int i=1;i<=n;i++)
{
f>>x;
s.push_back(x);
}
int sum=0;
pair < int , pair <int,int> > sol;
sol=determine(s);
g<<sol.first<<' ';
g<<sol.second.first<<' '<<sol.second.second;
}