Pagini recente » Cod sursa (job #285115) | Cod sursa (job #2373437) | Cod sursa (job #1968208) | Cod sursa (job #3180898) | Cod sursa (job #384369)
Cod sursa(job #384369)
# include <fstream.h>
ifstream f ("subsir2.in");
ofstream g ("subsir2.out");
int a[10000],t[10000],l[10000],poz,i,j,k,min,inf=32000,n,minf,ok,pozz;
int main ()
{
f>>n;
for (i=1;i<=n;i++)
f>>a[i];
min=inf;
for (i=n;i>=1;i--)
{
minf=inf;min=inf;
for (j=i+1;j<=n;j++)
if (a[j]>=a[i])
{
if (a[j]<min)
if (minf>=l[j])
{
minf=l[j];
min=a[j];
t[i]=j;
}
}
if (minf!=inf)
l[i]=minf+1;
else
l[i]=1;
}
min=inf;
for (i=1;i<=n;i++)
{
ok=0;
for (j=1;j<i;j++)
if (a[j]<=a[i])
ok=1;
if (ok==0)
{
if (min>l[i])
{
min=l[i];
poz=i;
minf=a[i];
}
if (min==l[i])
if (minf>a[i])
{
minf=a[i];
poz=i;
}
}
}
g<<min<<"\n";
g<<poz<<" ";
min--;
while (min)
{
minf=inf;
for (i=poz;i<=n;i++)
if (l[i]==min)
if (a[i]>=a[poz])
if (minf>a[i])
{
minf=a[i];
pozz=i;
}
poz=pozz;
g<<poz<<" ";
min--;
}
return 0;
}