Pagini recente » Cod sursa (job #3141788) | Cod sursa (job #710662) | Clasament preoni51b | Cod sursa (job #3167230) | Cod sursa (job #903715)
Cod sursa(job #903715)
#include<fstream>
#include<algorithm>
const int NMAX = 6000001;
using namespace std;
int N;
int values[NMAX];
ifstream fin("ssm.in");
ofstream fout("ssm.out");
void solve() {
int start,end, auxStart;
int sumFwd = -int(2e9);
int pozFwd = -1;
int pozBkwd = -1;
int sumBkwd = -int(2e9);
int auxSum = 0;
fin>>N;
int i;
for (i = 0; i < N; i++) {
fin>>values[i];
auxSum += values[i];
if (auxSum > sumFwd){
sumFwd = auxSum;
pozFwd = i;
}
}
auxSum = 0;
for (i = N -1; i >= 0; i--) {
auxSum += values[i];
if (auxSum > sumBkwd){
sumBkwd = auxSum;
pozBkwd = i;
}
}
if (pozFwd > pozBkwd) {
start = pozBkwd;
end = pozFwd;
}
else {
start = pozFwd;
end = pozBkwd;
}
auxSum = 0;
for (i = start; i <= end; i++) {
auxSum += values[i];
}
fout<<auxSum<<" "<<start+1<<" "<<end+1<<"\n";
}
int main(){
solve();
return 0;
}