Pagini recente » Cod sursa (job #1873762) | Cod sursa (job #887794) | Cod sursa (job #288195) | Cod sursa (job #293236) | Cod sursa (job #641302)
Cod sursa(job #641302)
#include<stdio.h>
int q[100];
int elem(int x,int l)
{
int poz=0,min=32000;
for(int i=1;i<=l;i++)
if(q[i]>=x && q[i]<min)
{
min=q[i];
poz=i;
}
if(poz!=0)
return poz;
return l+1;
}
int main()
{
FILE *f=fopen("scmax.in","rt");
FILE *g=fopen("scmax.out","wt");
int v[100],p[100],n,l=0,i,j,k=1,c;
fscanf(f,"%i",&n);
for(i=1;i<=n;i++)
fscanf(f,"%i",&v[i]);
v[0]=0; //sa sterg asta
q[0]=0; //sa sterg asta
p[0]=0; //sa sterg asta
for(i=1;i<=n;i++)
{
if(l==0)
{
q[1]=v[1];
l++;
p[1]=1;
}
else
{
c=elem(v[i],l);
if(c==l+1)
l++;
q[c]=v[i];
p[i]=c;
}
}
c=l;
for(i=n;i>=0;i--)
{
if(l>0)
if(p[i]==l)
{
q[l]=v[i];
l--;
}
}
fprintf(g,"%i\n",c);
for(i=1;i<=c;i++)
fprintf(g,"%i ",q[i]);
}