Pagini recente » Cod sursa (job #1128941) | Cod sursa (job #1125094) | Cod sursa (job #1467269) | Cod sursa (job #1328636) | Cod sursa (job #2071954)
#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=0, x, k, semn;
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;
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;
maxi=max(maxi, v[d[st]]);
}
out<<maxi;
return 0;
}