Pagini recente » Profil PCristian | Profil usureluflorian | Diferente pentru utilizator/andrici_cezar intre reviziile 178 si 83 | Diferente pentru problema/dedicatie intre reviziile 75 si 37 | Cod sursa (job #274080)
Cod sursa(job #274080)
#include <fstream>
#include <iostream>
using namespace std;
int n;
int s[6000001];
#define FOR(i,b,c) for (int i = (b); i<(c); i++)
#define abs(a) ((a<0)?(-1*a):(a))
void mainLoop(){
ifstream fin("ssm.in");
ofstream fout("ssm.out");
fin >> n;
FOR(i,0,n)
fin >> s[i];
int min = 0, a=0, b=0;
long sum = 0, minS = (2e9), rez = s[0];
FOR(i,0,n){
if (sum + s[i] < minS){
min = i;
minS = sum;
}
sum += s[i];
if (sum - minS > rez || (sum - minS == rez && abs(i-min) < abs(a-b)) ){
rez = sum - minS;
a = min;
b = i;
}
}
fout << rez << " " << a+1 << " " << b+1;
fout.close(), fin.close();
}
int main() {
mainLoop();
return 0;
}