Mai intai trebuie sa te autentifici.
Cod sursa(job #921587)
Utilizator | Data | 21 martie 2013 09:09:44 | |
---|---|---|---|
Problema | Subsir crescator maximal | Scor | 70 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.82 kb |
#include <cstdio>
#define DIM 100001
using namespace std;
FILE *f,*g;
int a[DIM], lung[DIM], n, i, j, maxi, poz, k, v[DIM];
int main()
{
f=fopen("scmax.in","r");
g=fopen("scmax.out","w");
fscanf(f,"%d",&n);
for(i=1; i<=n; i++)
{
maxi=0;
fscanf(f,"%d",&a[i]);
for(j=1; j<i; j++)
if(a[j]<a[i]&&lung[j]>maxi) { lung[i]=lung[j]; maxi=lung[j]; }
lung[i]++;
}
maxi=0;
for(i=1; i<=n; i++)
if(lung[i]>maxi) { maxi=lung[i]; poz=i; }
fprintf(g,"%d\n",maxi);
for(i=poz; i>=1; i--)
if(lung[i]==maxi&&a[i]<=a[poz])
{
v[++k]=a[i];
poz=i;
maxi--;
}
for(i=k; i>=1; i--)
fprintf(g,"%d ",v[i]);
fclose(f);
fclose(g);
return 0;
}