Cod sursa(job #1349596)

Utilizator Bogdan15Bogdan Gherghina Bogdan15 Data 20 februarie 2015 12:33:56
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<fstream>
#define InFile "secventa.in"
#define OutFile "secventa.out"
#define NMAX 500001
using namespace std;
ifstream f(InFile);
ofstream g(OutFile);
long N,K;
int v[NMAX];
void citire(){
      long i;
      f>>N;
      f>>K;
      for(i=1;i<=N;i++)
         f>>v[i];
      f.close();
}
int main(){
      citire();
      long deque[NMAX],i,left=1,right=0;
      int maxx=-30001,st,dr;
      for(i=1;i<=N;i++){
          while(left<=right && v[i]<=v[deque[right]])
              right--;
          deque[++right]=i;
          if(deque[left]==i-K)
             left++;
          if(i>=K && v[deque[left]]>maxx){
               maxx=v[deque[left]];
               st=i-K+1;
               dr=i;
          }
      }
      g<<st<<" "<<dr<<" "<<maxx;
      g.close();
      return 0;
}