Pagini recente » Cod sursa (job #587242) | Cod sursa (job #1655575) | Cod sursa (job #2044036) | Cod sursa (job #1067694) | Cod sursa (job #1316325)
#include <fstream>
#include <deque>
#include <string>
using namespace std;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
deque<long long>d[5000005];
int v[5000005];
long long n,k,i,front,back,S,MAX,l,fr;
char s[5000005];
void chg()
{
int semn, j, r;
j = 1;
for (int i = 0; s[i] != 0; i++)
{
semn = 1;
r = 0;
if (s[i] == '-')
{
semn = -1;
i++;
}
while (s[i] >= '0' && s[i] <= '9')
{
r = r * 10 + s[i] - '0';
i++;
}
v[j] = r * semn;
j++;
}
}
int main()
{
fin>>n>>k;
MAX=-9999999;
fin.get();
fin.getline(s,5000100);
chg();
front=1;back=1;
for(i=1;i<=n;i++)
{
while(!d.empty()&&v[i]<=v[d.back])
d.pop_back();
d.push_back(i);
if(d.front()==i-k)
d.pop_front();
if(i>=k && d.front()>MAX)
{
MAX=d.front();
l=i;
fr=i-k+1;
}
}
fout<<fr<<" "<<l<<" "<<MAX;
return 0;
}