Pagini recente » Cod sursa (job #1252085) | Cod sursa (job #937925) | Cod sursa (job #2229810) | Cod sursa (job #2484818) | Cod sursa (job #344312)
Cod sursa(job #344312)
#include <fstream.h>
#include <iostream.h>
#define nmax 2<<18
int v[nmax],poz[nmax],min=-30001;
int n,k,i,sfpoz;
void citeste()
{ifstream in("secventa.in");int h;
in>>n>>k;
for(h=1;h<=n;h++) in>>v[h];
in.close();
}
void scrie()
{ofstream out("secventa.out");
out<<sfpoz-k+1<<" "<<sfpoz<<" "<<min<<"\n";
out.close();
}
void rezolva()
{int first=1,last=0;
for (i=1;i<=n;i++)
{while(first<=last && v[i]<=v[poz[last]]) --last;
poz[++last]=i;
if(i-poz[first]==k) first++;
if(i>=k && v[poz[first]]>min)
{min=v[poz[first]];
sfpoz=i;
}
}
}
int main()
{citeste();
rezolva();
scrie();
return 0;
}