Cod sursa(job #963861)

Utilizator alex_HarryBabalau Alexandru alex_Harry Data 19 iunie 2013 16:34:24
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <fstream>
#include <functional>
#include <numeric>
using namespace std;
ifstream f("secv2.in");
ofstream g("secv2.out");
int N,K,Partial[50002],Arr[50002];
void Read()
{
    f>>N>>K;
    int i;
    for(i=0;i<N;i++)
        f>>Arr[i];
    partial_sum(Arr,Arr+N,Partial);
}
void Solve()
{
    int i,start=0,fin=K-1,max_sum=Partial[K-1],current_sum=Partial[K-1],current_start=0,current_fin=K-1;
    for(i=K;i<N;i++)
    {
        if(current_sum+Arr[i]<Partial[i]-Partial[i-K])
        {
            current_sum=Partial[i]-Partial[i-K];
            current_start=i-K+1;
            current_fin=i;
        }
        else
        {
            current_sum+=Arr[i];
            current_fin=i;
        }
        if(current_sum>max_sum)
        {
            max_sum=current_sum;
            start=current_start;
            fin=current_fin;
        }
    }
    g<<start+1<<" "<<fin+1<<" "<<max_sum<<"\n";
}
int main()
{
    Read();
    Solve();
    return 0;
}