Pagini recente » Cod sursa (job #507876) | Cod sursa (job #1090386) | Cod sursa (job #1587377) | Cod sursa (job #1894400) | Cod sursa (job #877263)
Cod sursa(job #877263)
#include <fstream>
using namespace std;
int st[500004],poz[500004];
int i, ul,pr,k,n,x,maxim=0,p1,p2;
int main()
{
ifstream fin("secventa.in");
fin>>n>>k>>x;
//freopen("secventa.in","r",stdin);
//scanf("%d %d %d", &n, &k, &x);
// cout<<n;
// printf("%d",n);
st[0]=x;
poz[0]=1;
ul=0;
/* for(i=2; i<=k; i++)
{
scanf("%d",&x);
while(pr<=ul && st[ul]>x)
ul--;
ul++;
st[ul]=x;
poz[ul]=i;
}
*/
// maxim=st[pr]; p1=1; p2=p1+k;
for(i=2; i<=n; i++)
{
fin>>x;
//printf("%d %d",x,i);
while(pr<=ul && st[ul]>x)
ul--;
ul++;
st[ul]=x;
poz[ul]=i;
while(i-poz[pr]>=k)
pr++;
if(maxim<st[pr]&& i>=k){ maxim=st[pr]; p1=i-k+1; p2=i; }
//for(i=pr; i<=ul; i++) printf("%d %d\n",st[i],poz[i]);
//printf("\n");
}
ofstream fout("secventa.out");
fout<<p1<<" "<<p2<<" "<<maxim<<"\n";
//freopen("secventa.out","w",stdout);
//printf("%d %d %d \n",p1,p2,maxim);
return 0;
}