Cod sursa(job #64646)

Utilizator znakeuJurba Andrei znakeu Data 4 iunie 2007 17:46:47
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.06 kb
#include <stdio.h>
#include <string.h>

struct baza
{
	int s,e;
	int vp,ve,vs;
};
int v[10000];


int main()
{
	int i,j,k,n,x;
	baza m;
	FILE *in=fopen("secventa.in","r");
	fscanf(in,"%d%d",&n,&k);
	for (i=0; i<k; i++)
		fscanf(in,"%d",&v[i]);
	x=0;
	m.s=0; m.e=k-1;
	for (i=1; i<k; i++)
		if (v[x]>v[i])
			x=i;
	m.vs=v[0];
	m.ve=v[k-1];
	m.vp=v[x];
	
	for (i=k; i<n; i++)
	{
		fscanf(in,"%d",&x);
		memmove(v,v+1,9999);
		v[k-1]=x;
		
		x=0;
		for (j=1; j<k; j++)
			if (v[x]>v[j])
				x=j;
		if (v[x]>m.vp)
		{
			m.s=i;
			m.e=i+k-1;
			m.vs=v[0];
			m.ve=v[k-1];
			m.vp=v[x];	
		}
		else
			if (v[x]==m.vp)
				if (v[0]<m.vs)
				{
					m.s=i;
					m.e=i+k-1;
					m.vs=v[0];
					m.ve=v[k-1];
					m.vp=v[x];	
				}
				else
					if (v[0]==m.vs)
						if (v[k-1]<m.ve)
						{
							m.s=i;
							m.e=i+k-1;
							m.vs=v[0];
							m.ve=v[k-1];
							m.vp=v[x];	
						}
	}
	fclose(in);
	FILE *out=fopen("secventa.out","w");
	fprintf(out,"%d %d %d\n",m.s+1,m.e+1,m.vp);
	fclose(out);
	
	
	return 0;
}