Pagini recente » Monitorul de evaluare | Cod sursa (job #3315838) | Monitorul de evaluare | Cod sursa (job #1939668) | Cod sursa (job #3358661)
#include <fstream>
#include <vector>
using namespace std;
int main() {
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int N;
fin >> N;
long long maxSum = -2e9; // Inițializăm cu o valoare foarte mică
long long currentSum = 0;
int startIdx = 1, endIdx = 1, tempStart = 1;
for (int i = 1; i <= N; ++i) {
int x;
fin >> x;
currentSum += x;
if (currentSum > maxSum) {
maxSum = currentSum;
startIdx = tempStart;
endIdx = i;
}
// Dacă suma devine negativă, o resetăm și mutăm începutul secvenței următoare
if (currentSum < 0) {
currentSum = 0;
tempStart = i + 1;
}
}
fout << maxSum << " " << startIdx << " " << endIdx << "\n";
fin.close();
fout.close();
return 0;
}