Pagini recente » Cod sursa (job #2935617) | Cod sursa (job #1008761) | Cod sursa (job #677157) | Cod sursa (job #672831) | Cod sursa (job #717461)
Cod sursa(job #717461)
#include <fstream>
#include <iostream>
using namespace std;
int min(int w[], unsigned long int lmp, unsigned long int nmp)
{
int m=w[lmp];
if(m>w[nmp])
m=w[nmp];
return m;
}
int main()
{
unsigned long int n, k, c=1 ,p=0, poz=0, lmp=0;
int base=-30001,b=-30001, a[500001];
fstream f("secventa.in",ios::in);
f>>n>>k;
for (int i=0;i<n ;i++)
{
f>>a[i];
}
f.close();
for (int i=1;i<n ;i++)
{
// cout<<"b="<<b<<"\n";
// cout<<"p="<<p<<"\n";
// cout<<"c="<<c<<"\n";
if ((c==k)&&(base<b))
{
base=b;
poz=p;
// cout<<"base<b =>\n";
// cout<<"base="<<base<<"\n";
// cout<<"poz="<<poz<<"\n";
}
if (b>a[i])
{
p=i;
c=1;
lmp=i;
// cout<<"b>a[i] =>\n";
// cout<<"p="<<p<<"\n";
// cout<<"c="<<c<<"\n";
}
else
{
if(c<k)
{
c++;
b=min(a,lmp,p+c-1);
// cout<<"c++ => c="<<c<<"\n";
}
else
{
p++;
lmp=p;
for (int j=p; j<p+c; j++)
{
if (a[j]<a[lmp])
lmp=j;
}
b=a[lmp];
// cout<<"p++ => p="<<p<<"\n";
//c--;
}
}
}
b=min(a,lmp,p+c-1);
if ((c==k)&&(base<b))
{
base=b;
poz=p;
// cout<<"base<b =>\n";
// cout<<"base="<<base<<"\n";
// cout<<"poz="<<poz<<"\n";
}
fstream g("secventa.out",ios::out);
g<<poz+1<<" "<<poz+k<<" "<<base;
//cout<<poz+1<<" "<<poz+k<<" "<<base;
g.close();
return(0);
}