Cod sursa(job #316141)

Utilizator zaNNyEnacache Razvan Daniel zaNNy Data 18 mai 2009 16:43:17
Problema Secventa Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.19 kb
#include <stdio.h>   
  
FILE *f,*s;   
  
int v[500001],n,k,i,j,min1,min2,in;   
  
int minim( int a, int b)   
{   
    int min=50000;   
    for(j=a;j<=b;++j)   
    {   
        if(v[j]<min)   
            min=v[j];   
    }      
       
    return min;   
}   
  
int main()   
{   
    f=fopen("secventa.in","r");   
    s=fopen("secventa.out","w");   
       
    fscanf(f,"%d %d\n",&n,&k);   
       
    for(i=1;i<=n;i++)   
        fscanf(f,"%d",&v[i]);   
       
    min2=minim(1,k);   
    min1=min2;   
    in=1;   
       
    for(i=2;i<=n-k+1;++i)   
    {   
        if(v[i-1]==min2)   
        {   
            min2=minim(i,i+k-1);   
               
            if(min2>min1)   
            {   
                min1=min2;   
                in=i;   
            }      
        }      
        else if(v[i+k-1]<min2)   
        {   
            min2=v[i+k-1];   
               
            if(min2>min1)   
            {   
                min1=min2;   
                in=i;   
            }      
        }      
    }      
       
    fprintf(s,"%d %d %d",in,in+k-1,min1);   
       
    fclose(s);   
       
    return 0;   
}