Cod sursa(job #1510007)

Utilizator nnnmmmcioltan alex nnnmmm Data 24 octombrie 2015 14:53:22
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<cstdio>
#include<deque>
std::deque<int> coada;
int V[500002];
int main()
{
 freopen("secventa.in","r",stdin);
 freopen("secventa.out","w",stdout);
 int n,k,max=-30001,rasp;
 scanf("%d %d ",&n,&k);
 for(int i=1;i<=n;i++)
     {
      scanf("%d ",&V[i]);
     }
 for(int i=1;i<=n;i++)
     {
      while(!coada.empty() && i-coada.front()>=k)
            coada.pop_front();
      while(!coada.empty() && V[coada.back()]>V[i])
            coada.pop_back();
      coada.push_back(i);
      if(i>=k)
         {
          if(V[coada.front()]>max)
             {
              max=V[coada.front()];
              rasp=i;
             }
         }
     }
 for(int i=rasp;i>=rasp-k+1;i--)
     printf("%d ",V[i]);
 fclose(stdin);
 fclose(stdout);
return 0;
}