Cod sursa(job #962848)

Utilizator RaduGabriel2012Dinu Radu RaduGabriel2012 Data 15 iunie 2013 20:18:52
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
ifstream f("secventa.in");
ofstream g("secventa.out");
int n,k,a[500005],q[500005],st,dr,d1,d2,mx=-30005;
long long sol=0;
void Parse()
{ char c,c2; int nr=0,pas=0;
   while(!f.eof())
   { f.get(c);
       if (c>=48 && c<=57) nr=nr*10+(c-48);
     else
     { if (c2>=48 && c2<=57)
       {pas++;
        if (pas==1) n=nr;  else if (pas==2) k=nr;
        else if (pas>2) a[pas-2]=nr;
        } nr=0;
     }
    c2=c;
    }
}
int main()
{ int i;
    Parse();
    for(i=1;i<=n;i++)
  { while(st<=dr && a[i]<a[q[dr]]) dr--;
    dr++; q[dr]=i;
      while(q[st]<=i-k) st++;
      if (i>=k)
      { if (a[q[st]]>mx) {mx=a[q[st]]; d1=i; d2=d1-k+1;} }
  }
  g<<d2<<" "<<d1<<" "<<mx;
  return 0;
}