Cod sursa(job #1533200)

Utilizator ris99Istrate Ruxandra ris99 Data 22 noiembrie 2015 11:34:48
Problema Secventa Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <fstream>
#include<cstring>
#include<cstdlib>
using namespace std;
char s[5000001],*p;
int a[500001],n,k,nr,max1,m,Front1,Back1,deque[500001],i;
int main()
{ ifstream f("secventa.in");
  ofstream  g("secventa.out");
  f>>n>>k;
  f.get();
  f.getline(s,5000001);
  p=strtok(s," ");
  nr=0;
  max1=-30001;
  while (p)
  { a[++nr]=atoi(p);
    p=strtok(NULL," ");
  }
  Front1=1;Back1=0;
 for (i=1;i<=n;i++)
 { while (Front1<=Back1&&a[i]<=a[deque[Back1]]) Back1--;
   deque[++Back1]=i;
   if(deque[Front1]==i-k) Front1++;
   if(i>=k && a[deque[Front1]]>max1)
   { max1=a[deque[Front1]];
     m=i;
   }
  }
  g<<m-k+1<<" "<<m<<" "<<max1;
    return 0;
}