Pagini recente » Cod sursa (job #578933) | Cod sursa (job #2844226) | Cod sursa (job #1345769) | Cod sursa (job #1523463) | Cod sursa (job #856812)
Cod sursa(job #856812)
#include<cstdio>
#include<deque>
#include<cstdlib>
#define dim 500001
using namespace std;
int main()
{ freopen("secventa.in","r",stdin);
freopen("secventa.out", "w",stdout);
int v[dim],poz1,poz2;
std::deque<int> mydeque1;
std::deque<int> mydeque2;
int n,k ;
scanf("%d",&n);
scanf("%d",&k);
for(int i=0;i<n;i++)
scanf("%d",&v[i]);
int m=1;
mydeque1[0]=v[0];
for(int i=1;i<n;i++)
{
if(i>=k)
{
if(i==k)
{ mydeque2.push_back(mydeque1[0]);
poz1=m+1;
poz2=m+k;
}
else
if(mydeque2[0]<mydeque1[0])
{
mydeque2.push_front(mydeque1[0]);
poz1=m+1;
poz2=m+k;
}
mydeque1.erase(mydeque1.begin(),mydeque1.begin()+1);
m++;
}
if(mydeque1[0]>=v[i])
mydeque1.push_front(v[i]);
if(mydeque1[0]<v[i])
mydeque1.push_back(v[i]);
}
printf("%d %d %d", poz1,poz2,mydeque2[0]);
//system("pause");
return 0;
}