Pagini recente » Cod sursa (job #1110754) | Cod sursa (job #2672512) | Cod sursa (job #468554) | Cod sursa (job #2317620) | Cod sursa (job #1533200)
#include <fstream>
#include<cstring>
#include<cstdlib>
using namespace std;
char s[5000001],*p;
int a[500001],n,k,nr,max1,m,Front1,Back1,deque[500001],i;
int main()
{ ifstream f("secventa.in");
ofstream g("secventa.out");
f>>n>>k;
f.get();
f.getline(s,5000001);
p=strtok(s," ");
nr=0;
max1=-30001;
while (p)
{ a[++nr]=atoi(p);
p=strtok(NULL," ");
}
Front1=1;Back1=0;
for (i=1;i<=n;i++)
{ while (Front1<=Back1&&a[i]<=a[deque[Back1]]) Back1--;
deque[++Back1]=i;
if(deque[Front1]==i-k) Front1++;
if(i>=k && a[deque[Front1]]>max1)
{ max1=a[deque[Front1]];
m=i;
}
}
g<<m-k+1<<" "<<m<<" "<<max1;
return 0;
}