Cod sursa(job #130401)

Utilizator anna_bozianuBozianu Ana anna_bozianu Data 1 februarie 2008 09:20:29
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
long int n,k,i,x[502],u,p,c[502],ps,b;
char cit[3514],*s;
int main()
{
	FILE *f,*g;f=fopen("secventa.in","r");g=fopen("secventa.out","w");
	fscanf(f,"%ld %ld\n",&n,&k);
	fgets(cit,3500014,f);
	s=cit;
	for(i=1;i<n;i++)
	{ x[i]=atol(s);
	  s=strchr(s,' ');
	  s++;
	}
	x[n]=atol(s);
	for(i=1;i<=k;i++)
	{ while(u>=p&&c[u]>x[i])u--;
	  u++;c[u]=x[i];
	}
	b=c[p];ps=1;
	for(i=k+1;i<=n;i++)
	{ if(c[p]==x[i-k])p++;
	  while(u>=p&&c[u]>x[i])u--;
	  u++;c[u]=x[i];
	  if(b<c[p]){b=c[p];ps=i-k+1;}
	}
	fprintf(g,"%ld %ld %ld\n",ps,ps+k-1,b);
	fcloseall();
	return 0;
}