Cod sursa(job #1785504)

Utilizator Rebeca19Rebeca Ciuciu Rebeca19 Data 21 octombrie 2016 14:11:48
Problema Secventa 2 Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#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;
}