Cod sursa(job #2606239)
Utilizator | Data | 27 aprilie 2020 12:53:53 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 85 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.51 kb |
#include <fstream>
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
int n, x;
long long currSum, maxSum, minSum;
int sp=1, fp=1;
int main() {
f>>n>>x;
currSum=maxSum=x;
if(x>=0)
minSum=0;
else {
minSum=x;
sp=2;
}
for(int i=2;i<=n;i++) {
f>>x;
currSum+=x;
if(currSum-minSum>maxSum) {
maxSum=currSum-minSum;
fp=i;
}
if(minSum>currSum) {
minSum=currSum;
sp=i+1;
}
}
g<<maxSum<<' '<<sp<<' '<<fp;
f.close();
g.close();
return 0;
}