Cod sursa(job #299698)

Utilizator stanesealexStanese Alex stanesealex Data 6 aprilie 2009 22:18:35
Problema Subsir crescator maximal Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include<cstdio>

using namespace std;

int a[100010],best[100010],d[100010],maxim,t=0;
int max(int k, int l)
{
	if (k>l) return k;
	return l;
}
int main()
{
	int n,i,j;
	FILE *f=fopen("scmax.in","r");
	FILE *g=fopen("scmax.out","w");
	fscanf(f,"%d ",&n);
	for (i=0;i<n;i++)
		fscanf(f,"%d ",&a[i]);
	best[0]=1;
	for (i=1;i<n;i++)
		{
			for (j=0;j<i;j++)
			if (a[i]>a[j])
			{
				best[i]=max(best[i],best[j]+1);
			}
			else if (best[i]==0) best[i]=1;
				if(best[i]>maxim) 
				{
					d[maxim]=a[i];
					maxim++;
				}
		}
fprintf(g,"%d ",maxim);
fprintf(g,"\n");
for (i=0;i<maxim;i++)
	fprintf(g,"%d ",d[i]);
fprintf(g,"\n");
fclose(f);
fclose(g);
	return 0;
}