Cod sursa(job #121397)

Utilizator savimSerban Andrei Stan savim Data 8 ianuarie 2008 17:09:39
Problema Secventa Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.2 kb
#include <stdio.h>
int main()
{
    int max,min,na,p,p1,p2,i,j,k,n;
	int a[5001];
    
    freopen("secventa.in","r",stdin);
    freopen("secventa.out","w",stdout);
    
    scanf("%d %d",&n,&k);
    for (i=1; i<=n; i++)
        scanf("%d",&a[i]);
        
    min=31000;na=0;
    for (i=1; i<=k; i++)
        if (a[i]<min) 
        {
           min=a[i];
           na=1;
        }
        else if (a[i]==min) na++;
    max=min;p1=1;p2=k;
    
    for (p=k+1; p<=n; p++)
    {
        if (a[p]<min) 
        {
           min=a[p];   
           na=1;
        }
        else
		if (a[p-k]==min)
        {
            na--;
            if (na==0)
            {
               min=30001;
			   for (j=p-k+1; j<=p; j++)
                   if (a[j]<min)
                   {
                      min=a[j];
                      na=1;
                   }
                   else if (a[j]==min) na++;
            }
            if (min>max)
            {
               max=min;
			   p1=p-k+1;
               p2=p;
            }
        }
	}
	for (i=p1-1; i>=1; i--)
		if (a[i]<max) break;
	p1=i+1;
	printf("%d %d %d\n",p1,p2,max);
    
    
    
    return 0;    
}