Cod sursa(job #1714939)
Utilizator | Tiberiu Raducanu Tibiraducanu | Data | 9 iunie 2016 19:25:37 |
---|---|---|---|
Problema | Secventa | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.66 kb |
#include <fstream>
#include <deque>
using namespace std;
int v[500005];
deque <int> q;
int main()
{
ifstream in("secventa.in");
ofstream out("secventa.out");
int n,k,i,maxx=0,sf;
in>>n>>k;
for(i=1;i<=n;i++)
{
in>>v[i];
while(!q.empty())
{
if(v[q.back()] >= v[i] ) q.pop_back();
else break;
}
q.push_back(i);
while(q.front() < i-k+1) q.pop_front();
if(i>=k and v[q.front()]>maxx)
{
maxx=v[q.front()];
sf=i;
}
}
out<<sf-k+1<<" "<<sf<<" "<<maxx<<"\n";
return 0;
}