Cod sursa(job #591029)

Utilizator an_drey_curentandreycurent an_drey_curent Data 21 mai 2011 21:41:35
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include<iostream.h>
#include<fstream.h>
int main()
{
 int x,y,min2,min1,pozi,pozf,maxmin=-30001,maxpozi,maxpozf,min3;
 long unsigned i,K,N,contor;
 ifstream f("secventa.in");
 ofstream g("secventa.out");
 f>>N;
 f>>K;
 int v[4];
 f>>v[1];
 f>>v[2];
 f>>v[3];
 int ok=0;
 do
 {ok=1;
  for(i=1;i<3;i++)
	if(v[i]>v[i+1])
	{int aux=v[i];v[i]=v[i+1];v[i+1]=aux;ok=0;}}
 while(ok==0);
 min1=v[1];min2=v[2];min3=v[3];
 pozi=1;pozf=3;contor=3;
 for(i=4;i<=N;i++)
 {f>>x;
  if(contor<K)
  {
	if(x<min1)
	{min3=min2;min2=min1;min1=x;}
	if(x>=min1&&x<min2)
	{min3=min2;min2=x;}
	if(x>=min2&&x<min3)
	min3=x;
	contor++;pozf=i;}
  if(contor==K)
  {
	if(min1>maxmin)
	{maxpozi=pozi;maxpozf=pozf;maxmin=min1;}
	if(x<min1)
	{pozi=i+1;contor=0;min1=30001;min2=30001;min3=30002;}
	else
	{
	if(x>=min1&&x<min2)
	{min3=min2;min2=min1;min1=x;}
	if(x>=min2&&x<min3)
	{min3=min2;min2=x;}
	if(x>=min3)
	min3=x;
	}
  }
 }
 g<<maxpozi<<' '<<maxpozf<<' '<<maxmin;
 f.close();g.close();return 0;}