Pagini recente » Cod sursa (job #2683541) | Cod sursa (job #2090238) | Cod sursa (job #1680228) | Cod sursa (job #2330747) | Cod sursa (job #1785504)
#include <iostream>
#include <fstream>
using namespace std;
void citire(int sir[], int &n, int &k){
ifstream in ("secv2.in");
in >> n >> k;
if(k > n){
cout << "Datele nu sunt valide";
return ;
}
for(int i = 1; i <= n; i++)
in >> sir[i];
}
int sumaMaxima(int sir[], int n, int k, int &inc, int &fin){
int s = 0, smax = 0;
inc = 1, fin = k;
for(int i = 1; i <= k; i++)
s += sir[i];
smax = s;
for(int i = k + 1; i <= n; i++){
s = s + sir[i] - sir[i - k];
if(s > smax)
smax = s, inc = i - k + 1, fin = i;
}
return smax;
}
int main(){
int sir[50000], n, k;
citire(sir, n, k);
int s = 0, smax = 0, inc = 0, fin = 0, i, f;
while(k <= n){
s = sumaMaxima(sir, n, k, i, f);
if(s > smax){
smax = s, inc = i, fin = f;
}
k++;
}
ofstream out ("secv2.out");
out << inc << " " << fin << " " << smax;
return 0;
}