Pagini recente » Cod sursa (job #2574650) | Cod sursa (job #1748565) | Cod sursa (job #2517633) | Cod sursa (job #508784) | Cod sursa (job #1537615)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("secventa.in");
ofstream o("secventa.out");
struct Nod{
Nod *ls,*ld;
int poz,val;
Nod(int myVal,int myPoz,Nod* myLs=NULL,Nod* myLd=NULL){
poz=myPoz;
val=myVal;
ls=myLs;
ld=myLd;
}
};
int main()
{
int i,k,n,value,poz,maxim,pozMax;
Nod *p,*start,*finish;
f>>n>>k;
f>>value;
start=new Nod(value,1);
finish=start;
maxim=-400000;
pozMax=1;
for(i=2;i<=n;i++){
f>>value;
poz=i;
p=finish;
while(p != start and p->val>value){
p=p->ls;
}
if(p == start and p->val>value){
finish=new Nod(value,poz);
start=finish;
}else{
finish=new Nod(value,poz,p);
p->ld=finish;
}
if(start->poz+k==finish->poz)
start=start->ld;
if(start->val>maxim and (finish->poz-k+1)>0){
maxim=start->val;
pozMax=finish->poz;
}
}
o <<pozMax-k+1<<" "<<pozMax<<" "<<maxim;
return 0;
}