Cod sursa(job #2031734)

Utilizator TudoseSanzianaTudose Sanziana TudoseSanziana Data 3 octombrie 2017 18:53:50
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <bits/stdc++.h>
using namespace std;

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

int n,k;
int v[500005];
multiset<int> s;
int stans,drans,ans;

int main()
{
    in>>n>>k;

    int st,dr;

    int mini=2e9;
    st=stans=1; dr=drans=k;
    for(int i=1; i<=k; i++)
    {
        in>>v[i];
        mini=min(mini,v[i]);
        s.insert(v[i]);
    }

    for(int i=k+1; i<=n; i++)
    {
        in>>v[i];
        if(v[st]==mini)
        {
            auto it=s.find(v[st]);
            s.erase(it);

            it=s.find(v[st]);
            if(it==s.end()) mini=*s.begin();
        }
        else
        {
            auto it=s.find(v[st]);
            s.erase(it);
        }
        st++;

        s.insert(v[i]);

        dr++;
        if(mini>ans)
        {
            ans=mini;
            drans=dr;
            stans=st;
        }
    }

    out<<stans<<' '<<drans<<' '<<ans<<'\n';
    return 0;
}