Pagini recente » Cod sursa (job #2670112) | Cod sursa (job #1865754) | Cod sursa (job #1069121) | Cod sursa (job #3155434) | Cod sursa (job #979942)
Cod sursa(job #979942)
#include <fstream>
using namespace std;
int a[1000005][2],t;
long int n,prim,ult,k,pst,psf,baza;
int main()
{
ifstream fin ("secventa.in");
ofstream fout("secventa.out");
fin >> n >> k;
fin >>a[0][0]; a[0][1]=1;
for (int i=1;i<k;i++)
{
fin >> t;
ult++;
a[ult][0]=t; a[ult][1]=i+1;
while ((ult>prim)&&(a[ult][0]<a[ult-1][0]))
{
a[ult-1][0]=a[ult][0];
a[ult-1][1]=a[ult][1];
ult--;
}
}
pst=1; psf=k; baza=a[0][0];
for (int i=k;i<n;i++)
{
if (a[prim][1]<i-k+2)
{
prim++;
}
fin >> t;
ult++;
a[ult][0]=t; a[ult][1]=i+1;
while ((ult>prim)&&(a[ult][0]<a[ult-1][0]))
{
a[ult-1][0]=a[ult][0];
a[ult-1][1]=a[ult][1];
ult--;
}
if (baza<a[prim][0])
{
baza=a[prim][0];
pst=i-k+2;
psf=i+1;
}
}
fout << pst<<" " << psf<<" " << baza;
fin.close();
fout.close();
}