Pagini recente » Cod sursa (job #1323610) | Cod sursa (job #2463782) | Cod sursa (job #32305) | Cod sursa (job #1686358) | Cod sursa (job #287027)
Cod sursa(job #287027)
#include<fstream.h>
ifstream intrare ("secv.in");
ofstream iesire ("secv.out");
int v[5001],n,sol[5001][3];
int main()
{
int i,nr,j,sw=0,max=0,min;
intrare>>n;
for(i=1;i<=n;i++)
{
intrare>>v[i];
}
if (n>=1)
{
sol[n][1]=1;
sol[n][2]=0;
sw=1;
for(i=n-1;i>=1;i--)
{
sol[i][1]=1;
sol[i][2]=0;
max=0;
for(j=i+1;j<=n;j++)
{
if(v[i]<v[j])
{
if(max<sol[j][1])
{
sol[i][1]=sol[j][1]+1;
max=sol[j][1];
sol[i][2]=j;
}
}
}
}
}
int poz2;
max=0;
nr=0;
if(sw==1)
{
for(i=1;i<=n;i++)
{
if(max<=sol[i][1])
{
max=sol[i][1];
min=i;
}
}
int t=min;
while(t!=0)
{ i=t;
t=sol[t][2] ;
poz2=i;
}
if(t==0) {poz2=i; i=n+2;}
nr=poz2-min+1;
iesire<<min<<" "<<poz2<<"\n";
iesire<<nr;
}
if(sw==0) iesire<<-1;
return 0;
}