Pagini recente » Clasamentul arhivei de probleme | Cod sursa (job #413705) | Cod sursa (job #2714035) | Cod sursa (job #529237) | Cod sursa (job #525808)
Cod sursa(job #525808)
#include <fstream>
#include <climits>
using namespace std;
typedef struct holder {
int sum;
int start;
int end;
};
int main(void)
{
int N, i, *secv;
holder prevBest, currBest, bestAll;
ifstream f("ssm.in");
f>>N;
secv = new int[N];
for (i=0;i<N;i++)
{
f>>secv[i];
}
f.close();
prevBest.start = 0;
prevBest.end = 0;
prevBest.sum = secv[0];
bestAll = prevBest;
for (i=1;i<N;i++)
{
currBest.sum = secv[i];
currBest.start = currBest.end = i;
if (currBest.sum < prevBest.sum+secv[i])
{
currBest.sum = prevBest.sum+secv[i];
currBest.start = prevBest.start;
}
if (currBest.sum > bestAll.sum)
{
bestAll = currBest;
}
prevBest = currBest;
}
ofstream g("ssm.out");
g << bestAll.sum<<' '<<bestAll.start+1<<' '<<bestAll.end+1<<'\n';
g.close();
delete[] secv;
return 0;
}