Pagini recente » Cod sursa (job #1734260) | Cod sursa (job #532132) | Cod sursa (job #2867194) | Cod sursa (job #642378) | Cod sursa (job #344312)
Cod sursa(job #344312)
#include <fstream.h>
#include <iostream.h>
#define nmax 2<<18
int v[nmax],poz[nmax],min=-30001;
int n,k,i,sfpoz;
void citeste()
{ifstream in("secventa.in");int h;
in>>n>>k;
for(h=1;h<=n;h++) in>>v[h];
in.close();
}
void scrie()
{ofstream out("secventa.out");
out<<sfpoz-k+1<<" "<<sfpoz<<" "<<min<<"\n";
out.close();
}
void rezolva()
{int first=1,last=0;
for (i=1;i<=n;i++)
{while(first<=last && v[i]<=v[poz[last]]) --last;
poz[++last]=i;
if(i-poz[first]==k) first++;
if(i>=k && v[poz[first]]>min)
{min=v[poz[first]];
sfpoz=i;
}
}
}
int main()
{citeste();
rezolva();
scrie();
return 0;
}