Pagini recente » Borderou de evaluare (job #1717763) | Monitorul de evaluare | Cod sursa (job #307355) | Cod sursa (job #71046) | Cod sursa (job #565870)
Cod sursa(job #565870)
#include <fstream>
using namespace std;
#define dim 500001
int v[dim], deque[dim];
int main()
{
ifstream fin("secventa.in");
ofstream fout("secventa.out");
int n, i, k;
fin>>n >>k;
for(i=1;i<=n;++i)
fin>>v[i];
for(i=1;i<=n;++i)
for(int j=1;j<=n;++j)
if(v[i]<v[j])
{
int aux=v[i];
v[i]=v[j];
v[j]=aux;
}
//sort(v+1,v+n+1);
int ls=1,ld=0;
for(i=1;i<k;++i)
{
while(ls<=ld && v[i]<=v[deque[ld]])
--ld;
deque[++ld]=i;
}
int minim=-30001, st;
for(i=k;i<=n;++i)
{
while(ls<=ld && v[i]<=v[deque[ld]])
--ld;
deque[++ld]=i;
while(ls<=ld && deque[ls]<i-k+1)
++ls;
if(v[deque[ls]]>minim)
{
minim=v[deque[ls]];
st=i;
}
}
fout<<st-k+1 <<" " <<st <<" " <<minim;
return 0;
}