Pagini recente » Cod sursa (job #2667277) | Cod sursa (job #340665) | Cod sursa (job #672465) | Cod sursa (job #62862) | Cod sursa (job #1010879)
#include <iostream>
#include <fstream>
#include <cstring>
#include <string>
#include <climits>
#include <algorithm>
#include <cmath>
#include <queue>
#include <deque>
#include <iomanip>
#include <stack>
#include <cstdio>
using namespace std;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
#define baza 10
#define MAX 501000
deque <int> coada;
int a[MAX];
char s[MAX*7];
int main()
{
int n ,k, i, b=INT_MIN, x=0, g, l, lol;
fin>>n>>k;
fin.get(s[0]);
fin.getline(s, sizeof(s));
g=strlen(s);
i=0;
for(l=1;l<=n+1;l++)
{
lol=1;
while(s[i]!=' ' && i<g)
{
if(s[i]=='-')
{lol=-1;
i++;}
a[l]=a[l]*10+s[i]-'0';
i++;
}
i++;
a[l]*=lol;
}
for(i=1;i<=n;i++)
{
while(!coada.empty() && a[coada.back()]>=a[i])
{
coada.pop_back();
}
coada.push_back(i);
if(coada.front()==i-k)
{
coada.pop_front();
}
if(i>=k && a[coada.front()]>b)
{
b=a[coada.front()];
x=i;
}
}
fout<<x-k+1<<" "<<x<<" "<<b;
return 0;
}