Cod sursa(job #645472)

Utilizator s8ko14romario s8ko14 Data 9 decembrie 2011 19:43:20
Problema Subsir crescator maximal Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include<stdio.h>
int b[100000];
int cautare(int x,int nr)
{
	int max=32000,c=-1;
	for(int i=0;i<nr;i++)
		if(b[i]>=x && b[i]<=max)
		{
			c=i;
			max=b[i];
		}
	if(c==-1)
		return nr;
	return c;
}
int main()
{
	int a[100000],p[100000],n,i,j,k,nr=1;
	FILE *f=fopen("scmax.in","rt");
	FILE *g=fopen("scmax.out","wt");
	fscanf(f,"%i",&n);
	for(i=0;i<n;i++)
		fscanf(f,"%i",&a[i]);
	b[0]=a[0];
	p[0]=1;
	for(i=1;i<n;i++)
	{
		k=cautare(a[i],nr);
		p[i]=k;
		if(k==nr)
		{
			b[nr]=a[i];
			nr++;
		}
		else
			b[k]=a[i];
	}
	fprintf(g,"%i\n",nr);
	for(i=0;i<nr;i++)
		fprintf(g,"%i ",b[i]);
}