Pagini recente » Cod sursa (job #2137770) | Cod sursa (job #2814070) | Cod sursa (job #81063) | Cod sursa (job #1442872) | Cod sursa (job #2683817)
using namespace std;
#include<bits/stdc++.h>
#define LGMAX 1024
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int n, v[6000001];
int st, dr, idx, sumcurr, summax = INT_MIN;
int main() {
fin >> n;
for (int i = 1; i<=n; i++) {
fin >> v[i];
}
st = 1;
dr = 1;
idx = 1;
for (int i = 1; i<=n; i++) {
if (sumcurr < 0) {
sumcurr = v[i];
idx = i;
} else {
sumcurr += v[i];
if (sumcurr > summax) {
summax = sumcurr;
st = idx;
dr = i;
} else if (sumcurr == summax) {
if (idx < st) {
st = idx;
dr = i;
} else if (idx == st) {
if (i-idx+1 < dr-st+1) {
dr = i;
}
}
}
}
}
fout << summax << " " << st << " " << dr;
/*
fin >> n;
for (int i = 1; i<=n; i++) {
fin >> v[i];
if (sumcurr < 0) {
sumcurr = v[i];
idx = i;
} else {
sumcurr += v[i];
if (sumcurr > summax) {
summax = sumcurr;
st = idx;
dr = i;
} else if (sumcurr == summax) {
if (idx < st) {
summax = sumcurr;
st = idx;
dr = i;
} else if (idx == st) {
if (i-idx+1 < dr-st+1) {
summax = sumcurr;
st = idx;
dr = i;
}
}
}
}
}
fout << summax << " " << st << " " << dr;
*/
fin.close();
fout.close();
return 0;
}