Pagini recente » Cod sursa (job #53547) | Cod sursa (job #1390716) | Cod sursa (job #2451577) | Cod sursa (job #588658) | Cod sursa (job #899256)
Cod sursa(job #899256)
#include<iostream>
#include<fstream>
#include<vector>
#include<deque>
using namespace std;
bool comp(int a,int b)
{if(a<b)
return false;
return true;
}
int main()
{
ifstream f("secventa.in",ios::in);
ofstream g("secventa.out",ios::out);
int i,a,min=0,poz=0,sf;
vector<int> v;
deque<int> q;
int N,K;
f>>N>>K;
for(i=0;i<N;i++)
{f>>a;
v.push_back(a);}
min=-1999;
for(i=0;i<N;i++)
{while(!q.empty() && v[q.back()]>v[i])
q.pop_back();
q.push_back(i);
if(q.back()-q.front()>=K)
q.pop_front();
if(v[q.front()]>min && i>=(K-1))
{min=v[q.front()];
poz=i-K+1;}
}
sf=poz+K-1;
while(v[poz-1]>=min && poz>1)
poz--;
if(poz==1 && v[0]>=min)
poz--;
if(sf<N-2)
{while(v[sf+1]>=min && sf<N-2)
sf++;}
else if(sf==N-2 && v[N-1]>=min)
sf++;
g<<poz+1<<" "<<sf+1<<" "<<min<<endl;
f.close();
g.close();
return 0;}