Pagini recente » Cod sursa (job #1531255) | Cod sursa (job #2666768) | Cod sursa (job #1665397) | Cod sursa (job #99567) | Cod sursa (job #1774197)
#include <fstream>
#include <cstring>
using namespace std;
ifstream fi("secventa.in");
ofstream fo("secventa.out");
int n,k,i,a[500001],d[500001],p,u,maxi=-100000000,poz;
char s[7000000];
void citesc()
{
fi>>n>>k;
fi.get();
fi.get(s,7000000);
int l=strlen(s);
int semn=1,nr=0,m=0;
for(i=0;i<=l;i++)
{if(s[i]=='-') semn=-1;
if(s[i]<='9' and s[i]>='0') {nr*=10;nr+=s[i]-'0';}
if(s[i]==' ' or s[i]=='\0') {a[++m]=nr*semn;
nr=0;semn=1;}
}
}
int main()
{
citesc();
//for(i=1;i<=n;i++)fo<<a[i]<<" ";
for(i=1;i<=n;i++)
{
while(p<=u and a[d[u]]>=a[i]) u--;
while(p<=u and d[p] < i-k+1) p++;
d[++u]=i;
if(i>=k and maxi<a[d[p]]) {maxi=a[d[p]];poz=i;}
}
fo<<poz-k+1<<" "<<poz<<" "<<maxi;
return 0;
}