Cod sursa(job #1482245)

Utilizator galbenugalbenu dorin galbenu Data 6 septembrie 2015 18:49:08
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <iostream>
#include <vector>
#include <fstream>
#define INFINIT 40000

using namespace std;

int inc,sf, maxim, minim ,incc,sfc;

int n,k, a[500050];

ifstream f("secventa.in");
ofstream g("secventa.out");

int find_min(int inc, int sf)
{
    minim=a[inc];

    for(int i=inc;i<=sf;i++)
        if(a[i]<minim)
            minim=a[i];

    return minim;
}

void read()
{
    f>>n>>k;
    for(int i=1;i<=n;i++)f>>a[i];

    inc=1; sf=inc+k-1; minim = find_min(1,sf);

    for(;sf<=n;sf++)
    {
        if(sf-inc>=k)
        while(a[inc+1]>=minim && sf-inc>=k )
        {
            if(a[inc]==minim || a[sf]<minim) minim=find_min(inc+1,sf);
            inc+=1;

        }


    if(minim>maxim)
        maxim=minim,incc=inc,sfc=sf;

     //cout<<inc<<" "<<sf<<" "<<minim<<" "<<maxim<<"\n";
    }
}

int main()
{
    read();

    g<<incc<<" "<<sfc<<" "<<maxim;

    return 0;
}