Cod sursa(job #3136457)
Utilizator | Serban Alexandru AlexSerban21 | Data | 6 iunie 2023 13:29:10 |
---|---|---|---|
Problema | Secventa | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.62 kb |
#include <fstream>
#include <deque>
using namespace std;
ifstream fin ("secventa.in");
ofstream fout ("secventa.out");
int n,k,i,maxc,dr,st,v[500001];
deque <int> q;
int main ()
{
fin>>n>>k;
maxc=-300001;
for (i=1; i<=n; i++)
{
fin>>v[i];
while (!q.empty ()&&v[i]<v[q.back ()])
q.pop_back ();
q.push_back (i);
if (i-q.front ()+1>k)
q.pop_front ();
if (i>=k&&v[q.front ()]>maxc)
{
maxc=v[q.front ()];
st=i-k+1;
dr=i;
}
}
fout<<st<<" "<<dr<<" "<<maxc;
return 0;
}