Pagini recente » Cod sursa (job #895783) | Cod sursa (job #2643645) | Cod sursa (job #3206479) | Cod sursa (job #2082356) | Cod sursa (job #158129)
Cod sursa(job #158129)
#include<iostream.h>
#include<fstream.h>
int n,i,t,r,ok,nr,j,b[1000],s[1001];
int a[1001],max;
void swap(int &a,int &b)
{int aux;
aux=a;a=b;b=aux;}
void main()
{
ifstream h("aliniere.in");
ofstream g("aliniere.out");
h>>n;max=0;t=-1;
for(i=0;i<n;i++)
h>>b[i];
cout<<endl;
for(i=0;i<n;i++) a[i]=b[i];
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(a[i]>a[j]) swap(a[i],a[j]);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{if(b[j]!=a[i]) continue;
s[j-1]=1;
for(t=j-1;t>=0;t--)
{s[t]=1;
for(r=t+1;r<j;r++)
{if(b[t]<b[r]&&s[t]<s[r]+1) s[t]=s[r]+1;}
}
for(t=0;t<j-1;t++) if(b[t]>b[j]) s[t]=0;
t=0;
for(r=1;r<j;r++)
if(s[r]>s[t]) t=r;
max=s[t];
for(r=t+1;r<j;r++)
if(b[r]>b[t]&&s[r]==max-1)
{ cout<<b[r-1]<<" ";
max-=1;}
else s[r]=0;
}
}