Cod sursa(job #577794)

Utilizator mening12001Andrei Geogescu mening12001 Data 10 aprilie 2011 17:05:49
Problema Subsir 2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include<iostream.h>
#include<fstream.h>
long i,n,o,ok=0,z;
struct vector{long x,y;};
vector a[5000],x[5000];
void sort(int l,int r)
{long i,j,m;
vector y;
i=l;
j=r;
m=a[(l+r)/2].x;
while(i<=j)
{while(a[i].x<m)
i=i+1;
while(m<a[j].x)
j=j-1;
if(i<=j)
{y=a[i];
a[i]=a[j];
a[j]=y;
i=i+1;
j=j-1;}}
if(l<j)
sort(l,j);
if(r>i)
sort(i,r);}

void afis(int k)
{ok=1;
z=k;
}
int valid(long k)
{if(x[k].y<x[k-1].y&&k!=1)
return 0;
if(x[k].x<=x[k-1].x&&k!=1)
	return 0;

return 1;}

void back(int k)
{long i;
if(ok==0)
for(i=1;i<=n;i++)
{x[k]=a[i];
if(valid(k)==1&&ok==0)
	if(k==o)
		afis(k);
	else
		back(k+1);}}	

int main()
{ifstream f("subsir2.in");
ofstream h("subsir2.out");
f>>n;
for(i=1;i<=n;i++)
{f>>a[i].x;
a[i].y=i;}
sort(1,n);
for(o=n;o>=1;o--)
	{back(1);
if(ok==1)
	break;}
	h<<z;
return 0;}