Cod sursa(job #3225675)

Utilizator Ics.maker09Iancu Cezar-Stefan Ics.maker09 Data 18 aprilie 2024 14:34:17
Problema Secventa Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <bits/stdc++.h>

using namespace std;
ifstream f("secventa.in");
ofstream g("secventa.out");
int i,n,Max=INT_MIN,poz,k;
deque<int>q;
int v[500005],x,nr;
int main()
{
   f>>n >>k;
   for(i=1;i<=n;i++)f>>v[i];
   for(i=1;i<=n;i++)
   {
       while(!q.empty() && v[q.front()]>=v[i])q.pop_back();
       if(!q.empty() && i-q.front()>=k)q.pop_front();
       q.push_back(i);
       x=v[q.front()];
       if(i>=k && x>Max)
       {
           Max=x;
           nr=i;
       }
       else if(i>=k && x==Max)
       {
           if(i-k+1<nr-k+1)
           {
               Max=x;
               nr=i;
           }
           else if(nr-k+1==i-k+1)
           {
               if(i<nr)
               {
                    Max=x;
                    nr=i;
               }
           }
       }
   }
   g<<nr-k+1<<" "<<nr<<" "<<Max;
}