Pagini recente » Cod sursa (job #2734253) | Cod sursa (job #429562) | Cod sursa (job #518216) | Cod sursa (job #530601) | Cod sursa (job #1321306)
#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();
pair <int, int> sol,soltemp;
int temps=s[1];
soltemp.first=soltemp.second=1;
int best=s[1];
sol=soltemp;
s.insert(s.begin(),0);
for(i=2;i<=n;i++)
{
if(temps<0)
{
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<<' ';
for(int i=sol.second.first;i<=sol.second.second;i++)
g<<s[i]<<' ';
}