Pagini recente » Cod sursa (job #2364968) | Cod sursa (job #696068) | Cod sursa (job #1585875) | Cod sursa (job #833045) | Cod sursa (job #640917)
Cod sursa(job #640917)
#include <fstream>
using namespace std;
ifstream f("secventa.in");
ofstream g("secventa.out");
int i,k,n,p,poz,Y,T,m,a[500003],d[500006],z,w,nr,semn;
string s;
int main()
{
f>>n>>k;
f.get();
m=-300005;
getline(f,s);
z=s.length();
s=s+' ';
semn=1;
for(i=0; i<=z; i++)
{
if(s[i-1]=='-')
semn=-1;
if (s[i]<='9'&&s[i]>='0') nr=nr*10+s[i]-'0';
if (s[i]==' ')
{
w++;
a[w]=nr*semn;
semn=1;
nr=0;
}
}
T=1;
for(i=1; i<=n; i++)
{
while (a[i]<=a[d[poz]]&&T<=poz) poz--;
poz++;
d[poz]=i;
if (d[T]<=i-k) T++;
if (a[d[T]]>m&&i>=k)
{
m=a[d[T]];
Y=i;
}
}
g<<Y-k+1<<" "<<Y<<" "<<m;
f.close();
g.close();
return 0;
}