Cod sursa(job #439145)

Utilizator lama23Manea Laura Maria lama23 Data 11 aprilie 2010 13:28:47
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include<fstream.h>
ifstream in("scmax.in");
ofstream out ("scmax.out");
int n,m,a[1000],b[1000],c[1000],t;
void cauta (int k)
{
int j,gasit,max;
gasit=0;
j=k-1;
max=0;
while(j>=1)
{if(a[k]>a[j]) {gasit=1;
		if(b[j]+1>max)
		   {b[k]=b[j]+1;c[k]=j;max=b[j]+1; }
		}
   j--;
}
if(max>m) {m=max;t=k;}
if(gasit==0) {b[k]=1;
	      c[k]=0;
	      }
}

void scrie(int k)
{if(c[k]!=0) {scrie(c[k]);
	      out<<a[k]<<" ";
	      }
	 else out<<a[k]<<" ";
}


int main()
{
int i;
in>>n;
for(i=1;i<=n;i++)
in>>a[i];

b[1]=1;
c[1]=0;
m=0;
t=1;
for(i=1;i<=n;i++)
{cauta(i);
}
scrie(t);
in.close();
out.close();
return 0;
}