Cod sursa(job #2118276)

Utilizator AndaionicaIonica Anda Maria Andaionica Data 30 ianuarie 2018 14:10:17
Problema Secventa Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <fstream>
using namespace std;
ifstream f("secventa.in");
ofstream g("secventa.out");
int n,k,st,dr,Max,poz1,poz2,i,a[500001],v[500001];
char s[1000001];
int main()
{
    f>>n>>k;
    st=1;dr=0;Max=-30001;
    f.get();
    f.getline(s,1000001);
int K=0;
    for(i=0;s[i]!=0;i++)
    if(s[i]>='0'&&s[i]<='9'){
        int nr=0;
        int j=i;
        while(s[j]>='0'&&s[j]<='9'){
              nr=nr*10+s[j]-'0';
            j++;
    }
    if(i>0&&s[i-1]=='-')
        nr=-nr;
     i=j-1;
      a[++K]=nr;
    }
    for(i=1;i<=n;i++){

        while(st<=dr&&a[i]<a[v[dr]])
            dr--;
        dr++;
        v[dr]=i;
        if(st<=dr&&v[st]==i-k)
            st++;
        if(i>=k&&Max<a[v[st]]){
            Max=a[v[st]];

            poz2=i;
        }
    }
    g<<poz2-k+1<<" "<<poz2<<" "<<Max;
    return 0;
}