Pagini recente » Cod sursa (job #27010) | Cod sursa (job #1740951) | Cod sursa (job #390654) | Cod sursa (job #2887691) | Cod sursa (job #1525121)
#include <iostream>
#include <fstream>
#include <cstring>
#include <cstdlib>
#include <deque>
using namespace std;
ifstream f("secventa.in");
ofstream g("secventa.out");
char s[4000001],*p;
int a[500001],n,k,maxi,nr;
deque<int> D;
int main()
{
maxi = -30001;
f>>n>>k;
f.get();
f.getline(s,4000001);
p=strtok(s," ");
nr=0;
while(p)
{
a[++nr]=atoi(p);
p=strtok(NULL," ");
}
for(int i=1;i<=n;i++)
{
while(!D.empty()&&a[i]<=a[D.back()])
D.pop_back();
D.push_back(i);
if(D.front()==i-k)
D.pop_front();
if(i>=k&&a[D.front()]>maxi)
{
maxi=a[D.front()];
nr=i;
}
}
g<<nr-k+1<<" "<<nr<<" "<<maxi;
return 0;
}