Pagini recente » Cod sursa (job #2705467) | Clasamentul arhivei Infoarena Monthly | Cod sursa (job #2567787) | Monitorul de evaluare | Cod sursa (job #921583)
Cod sursa(job #921583)
#include <cstdio>
#define DIM 100001
using namespace std;
FILE *f,*g;
int a[100001], lung[100001], n, i, j, maxi, poz, k, v[100001];
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;
}