Cod sursa(job #2311931)

Utilizator eutu33eu tu el ea eutu33 Data 3 ianuarie 2019 21:06:26
Problema Secventa Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.77 kb
#include <fstream>
#include <deque>

using namespace std;

int main()
{
    ifstream cin ("secventa.in");
    ofstream cout ("secventa.out");
    deque <int> dq;
    int n,k,minn=30002,maxx=-30002,p,u,pm,um;
    cin>>n>>k;
    int v;
    p=u=pm=um=0;
    for(int i=0;i<n;i++)
    {
        cin>>v;
        if(dq.size()<k)
        {
            dq.push_back(v);
            minn=min(minn,v);
            u=i;
            if(dq.size()<k)
                continue;
            if(minn>maxx)
            {
                maxx=minn;
                pm=p;
                um=u;
            }
            else if(minn==maxx)
            {
                if(p<pm)
                {
                    pm=p;
                    um=u;
                }
                else if(p==pm)
                    if(um<u)
                        um=u;
            }
            continue;
        }
        if(v>minn)
        {
            p++;
            u++;
            if(dq.size()<=0)
            {
                dq.size();
            }
            dq.pop_front();
            dq.push_back(v);
            minn=30002;
            for(int j=0;j<dq.size();j++)
                minn=min(minn,dq.at(j));
        }
        else
        {
            if(minn>maxx)
            {
                maxx=minn;
                pm=p;
                um=u;
            }
            else if(minn==maxx)
            {
                if(p<pm)
                {
                    pm=p;
                    um=u;
                }
                else if(p==pm)
                    if(um<u)
                        um=u;
            }
            dq.clear();
            p=i+1;
            minn=30002;
        }

    }
    cout<<pm+1<<" "<<um+1<<" "<<minn;
    return 0;
}