Pagini recente » Cod sursa (job #2537585) | Cod sursa (job #2486254) | Cod sursa (job #3259232) | Cod sursa (job #1343262) | Cod sursa (job #2071985)
#include <fstream>
#include <cstring>
using namespace std;
ifstream in("secventa.in");
ofstream out("secventa.out");
const int N=500001;
int v[N], d[N];
char s[7*N+1];
int main()
{
int val, n, l, st, dr, i, maxi=-300000, x, k, semn, ib;
in>>x>>k>>ws;
in.getline(s, 7*N+1);
val=0;
semn=1;
n=0;
l=strlen(s);
for(i=0; i<l; i++)
{
if(isdigit(s[i])) val=val*10+(s[i]-'0');
else if(s[i]==' ')
{
v[++n]=val*semn;
val=0;
semn=1;
}
else semn=-semn;
}
v[++n]=val*semn;
/*
for (i = 1; i <= x; i++)
{
in >> v[i];
}
*/
st=0;
dr=-1;
for(i=1; i<=x; i++)
{
if(st<=dr && d[st]==i-k) st++;
while(st<=dr && v[i]<=v[d[dr]]) dr--;
d[++dr]=i;
if(i >= k && v[d[st]]>maxi)
{
maxi=v[d[st]];
ib=i;
}
}
out<<ib-k+1<<" "<<ib<<" "<<maxi;
return 0;
}