Cod sursa(job #314737)

Utilizator andrici_cezarAndrici Cezar andrici_cezar Data 12 mai 2009 20:33:40
Problema Secventa Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.44 kb
#include<stdio.h>
FILE *f,*g;        
long n,k,i,y,x,ok,min,ind,max,poz,aux,incep,sfarsit;
int a[500001];
char s[1000000],q[1];

int main()
{
f=fopen("secventa.in","rt");
g=fopen("secventa.out","wt");
fscanf(f,"%ld %ld",&n,&k);
fgets(q,2,f);
fgets(s,10000000,f);
aux=0;
ok=0;
for (i=0;s[i]!='\n';++i)
    {
    if(s[i]==' '){ a[++poz]=aux;aux=0;if (ok==1) a[poz]*=-1; ok=0;}
    else if (s[i]=='-')ok=1;
               else if (s[i]!='\n'&&s[i]!=' '&&s[i]!='\x0')aux=aux*10+s[i]-'0';
    if (s[i]=='\x0') break;
    }
a[++poz]=aux;
if (ok==1) a[poz]*=-1;
y=k;
x=1;      
max=-20000000;      
min=20000000;      
for (i=x;i<=y;i++)      
    if (a[i]<min) min=a[i];
    if (min>max)      
        {      
        max=min;      
        incep=x;      
        sfarsit=y;      
        }      
    while (y<=n)      
        {      
        y++;      
        x++;      
        if (a[x-1]==min)      
            {      
            min=20000000;      
            for (i=x;i<=y;i++)      
                if (a[i]<min) min=a[i];      
            if (min>max)      
                {      
                max=min;      
                incep=x;      
                sfarsit=y;      
                }      
            }      
        }      
fprintf(g,"%d",incep);      
fprintf(g," ");      
fprintf(g,"%d",sfarsit);      
fprintf(g," ");      
fprintf(g,"%d\n",max);      
fclose(g);      
return 0;      
}