Cod sursa(job #1203086)

Utilizator azkabancont-vechi azkaban Data 30 iunie 2014 17:13:02
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <fstream>
#include <deque>
using namespace std;

deque <int> Dq;
int i,n,aux,k,maxim(-999999),sol1; 

int main()
{
  ifstream cin;
  filebuf* fb1=cin.rdbuf();
  fb1->open ("secventa.in",ios::in);
  ofstream cout;
  filebuf* fb2=cout.rdbuf();
  fb2->open ("secventa.out",ios::out);
  cin>>n>>k;
  int A[n];
  for(i=1;i<=n;i++){
                    cin>>A[i];  
                     while(!Dq.empty() && A[i]<=A[Dq.back()]) Dq.pop_back();
                     Dq.push_back(i);
                     if (!Dq.empty() && i-k==Dq.front()) Dq.pop_front();
                     if (maxim<A[Dq.front()] && i>=k){ 
                                                      maxim=A[Dq.front()];
                                                      sol1=i;
                                                     }                  
                  }
  cout<<sol1-k+1<<" "<<sol1<<" "<<maxim;
  fb1->close();
  fb2->close();
 return 0;
}