Pagini recente » Cod sursa (job #2447213) | Cod sursa (job #761827) | Cod sursa (job #2605711) | Cod sursa (job #468142) | Cod sursa (job #577793)
Cod sursa(job #577793)
#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;}