Pagini recente » Istoria paginii runda/viata_periculoasa_pe_infoarena2 | Cod sursa (job #3147703) | Cod sursa (job #2297075) | Cod sursa (job #3147450) | Cod sursa (job #812436)
Cod sursa(job #812436)
#include<fstream>
#include<vector>
using namespace std;
int n,k;
int maxim;
vector <int> deq;
vector <int> poz;
ifstream in("secventa.in");
ofstream out("secventa.out");
void scan()
{
in>>n>>k;
}
void deque()
{
int i,a,w=0;
int st,dr,inc,sf;
st=0;
dr=-1;
maxim=-30001;
for (i=1;i<=n;i++)
{
in>>a;
while (dr>=st && deq[dr]>a)
{
dr--;
}
dr++;
if (dr==deq.size())
{
deq.push_back(a);
poz.push_back(i);
}
else
{
deq[dr]=a;
poz[dr]=i;
}
if (i-poz[st]+1>k)
st++;
if (i>=k)
{
if (maxim<deq[st])
{
inc=i-k+1;
sf=i;
maxim=deq[st];
}
}
}
out<<inc<<" "<<sf<<" "<<maxim<<"\n";
}
int main()
{
scan();
deque();
return 0;
}