Pagini recente » Cod sursa (job #3261365) | Cod sursa (job #2444194) | Cod sursa (job #2206339) | Cod sursa (job #3266086) | Cod sursa (job #2474236)
#include <fstream>
#include <deque>
using namespace std;
ifstream in("secventa.in");
ofstream out("secventa.out");
struct secventa
{
int minim;
int incp;
int sfar;
};
deque<int> coada;
secventa poz[500005];
int nr[500005];
int salv[500005];
int main()
{
int n, k;
in>>n>>k;
for(int i=1; i<=n; i++)
in>>nr[i];
for(int i=1; i<=n-k+1; i++)
{
for(int j=i; j<=k+i-2; j++)
{
if(coada.front()<nr[j])coada.push_back(nr[j]);
else if(coada.front()>=nr[j])coada.push_front(nr[j]);
}
poz[i].incp=i;
poz[i].sfar=k+i-1;
poz[i].minim=coada.front();
while(!coada.empty())
coada.pop_front();
}
int maxim=-30001;
for(int i=1; i<=n-k+1; i++)
if(poz[i].minim>maxim)
maxim=poz[i].minim;
for(int i=1; i<=n-k+1; i++)
if(poz[i].minim==maxim)
{
out<<poz[i].incp<<" "<<poz[i].sfar<<" "<<poz[i].minim;
break;
}
in.close();
out.close();
return 0;
}