Pagini recente » Cod sursa (job #2896973) | Cod sursa (job #3139829) | Cod sursa (job #695133) | Cod sursa (job #908768) | Cod sursa (job #1555791)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int N,K,A[6000100],dp[6000100],pre[6000100],preM[6000100],poz[6000100],maxi;
int main(){
fin >> N;
for(int i = 1;i<=N;i++){
fin >> A[i];
A[i]-=K;
pre[i] = pre[i-1] + A[i];
if(preM[i-1] > pre[i]){
poz[i] = i;
preM[i] = pre[i];
}else{
poz[i] = poz[i-1];
preM[i] = preM[i-1];
}
}
for(int i = 1;i<=N;i++)
dp[i] = pre[i] - preM[i];
int rs = 0;
for(int i = 0;i<=N;i++) if(rs < dp[i]) rs = dp[i],maxi = i;
fout << dp[maxi] << ' '<< poz[maxi]+1 <<' ' << maxi;
return 0;
}