Cod sursa(job #994784)

Utilizator Corneliu10Dumitru Corneliu Corneliu10 Data 6 septembrie 2013 12:33:52
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.1 kb
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
#define MAX  500002
#define INF 1250000001
 
int k, n, v[MAX], xmin, xmax;
deque<int> dq;
long long xsum = -INF, smin, smax, s[MAX];
 
void print(){
    cout << endl;
    cout << n << " " << k << endl;
    for(int i = 1; i <= n; i ++){
        cout << v[i] << " ";
    }
    cout << endl;
    cout << xmin << " " << xmax << " " << xsum << endl;
    cout << endl;
}
 
void read(){
    ifstream fi("secv2.in");
    fi>>n>>k;
    for(int i=1;i<=n;i++){
        fi >> v[i];
    }
    fi.close();
}
 
void write(){
    ofstream fo("secv2.out");
    fo << xmin << " " << xmax << " " << xsum;
    fo.close();
 
}
 
void compute(){ 
    s[0] = 0;
    smin = INF; smax = -INF;
    for(int i=1; i <= n; i++){
        s[i] = s[i-1] + v[i];
        if(i >= k){
            if(smin > s[i-k]) smin = s[i-k], xmin = i - k + 1;
            if(s[i] - smin > xsum) xsum = s[i] - smin, xmax = i;
        }
    }
     
}
 
int main(void){
    read();
    compute();
    //print();
    write();
    return 0;
}