Pagini recente » Cod sursa (job #3180346) | Cod sursa (job #2668998)
#include <fstream>
#include <climits>
using namespace std;
const int MAX_LENGTH = 50002;
int main (void){
ifstream fin ("secv2.in");
int length, sequenceLength;
fin>>length>>sequenceLength;
int partialSum[MAX_LENGTH] = {};
for (int i=1; i<=length; i++){
int number;
fin>>number;
partialSum[i] = partialSum[i-1] + number;
}
fin.close();
int minimumSum = INT_MAX, minimumSumPosition = 0;
int maxSum = INT_MIN, right, left;
for (int i=sequenceLength; i<=length; i++){
if (partialSum[i - sequenceLength + 1] < minimumSum){
minimumSum = partialSum[i - sequenceLength + 1];
minimumSumPosition = i - sequenceLength + 1;
}
if (partialSum[i] - minimumSum > maxSum){
maxSum = partialSum[i] - minimumSum;
right = i;
left = minimumSumPosition + 1;
}
}
ofstream fout ("secv2.out");
fout<<left<<" "<<right<<" "<<maxSum<<"\n";
fout.close();
return 0;
}