Cod sursa(job #177539)

Utilizator rala03Ana Roxana Pop rala03 Data 13 aprilie 2008 11:45:09
Problema Secventa Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.54 kb
#include <stdio.h>   
#define N 500000   
char s[6*N];   
int v[N];   
int main ()   
{   
    int p,k,nr=0,i,c,max,semn,d=0;   
    int min,a,b,j;   
    //int v[N];   
    freopen ("secventa.in","r",stdin);   
    freopen ("secventa.out","w",stdout);   
    scanf ("%d%d\n",&p,&k);   
    fgets(s,6*N,stdin);   
    //gets(s)   
    for (i=0;s[i]!='\0';i++)   
    {   
        if(s[i]=='-')   
            semn=-1;   
        else  
        {   
            if (s[i]>='0' && s[i]<='9')   
            {   
                v[nr]=v[nr]*10+(s[i]-'0');   
            }   
            else  
            {   
                v[nr]*=semn;   
                semn=1;   
                nr++;   
            }   
        }   
    }   
/*  for(i=0;i<p;++i)  
        printf("%d ",v[i]);  
    printf("\n");*/  
    c=-30000;   
    a=v[0];b=v[k-1];   
    for (i=0;i<=p-k+1;i++)   
    {   
        min=v[i];   
        for (j=i;j<=i+k-1;j++)   
        {   
            //min=v[i];   
            if (v[j]<min)   
            {   
                min=v[j];
				//printf ("%d ",j);
				d=j;
            }   
        }   
        if (min>c)   
        {   
            a=i;   
            b=i+k-1;   
            c=min;
			//printf ("%d\n",c);  			
        }   
		else
		{
			if (d!=1)
				i=d;
		}
    }   
    max=v[a-1];   
    for (i=a-1;i<=b-1;i++)   
    {   
        if (v[i]<max)   
        {   
            max=v[i];   
        }   
    }   
    printf("%d %d %d",a+1,b+1,c);   
    return 0;   
}