Cod sursa(job #1024714)

Utilizator george_stelianChichirim George george_stelian Data 8 noiembrie 2013 23:28:29
Problema Secventa Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <cstdio>
#include <queue>

using namespace std;

struct sec
{
    int a;
    int b;
    bool operator<(const sec &x) const
    {
        if(a>x.a)return true;
        else return false;
    }
};

priority_queue<sec>v;
sec a;
bool v1[500010];
int n,k,i,x1,x2,sol,x;

int main()
{
    freopen("secventa.in", "r", stdin);
    freopen("secventa.out", "w", stdout);
    scanf("%d%d",&n,&k);
    for(i=1;i<=k;i++)
    {
        scanf("%d",&x);
        a.a=x;
        a.b=i;
        v.push(a);
    }
    x1=1;x2=k;sol=v.top().a;
    for(i=k+1;i<=n;i++)
    {
        scanf("%d",&x);
        a.a=x;
        a.b=i;
        v.push(a);
        v1[i-k]=1;
        while(v1[v.top().b])
        {
            v.pop();
        }
        if(sol<v.top().a)
        {
            sol=v.top().a;
            x1=i-k+1;
            x2=i;
        }
    }
    printf("%d %d %d",x1,x2,sol);
    fclose(stdin);fclose(stdout);
    return 0;
}