Pagini recente » Cod sursa (job #432695) | Cod sursa (job #2308928) | Cod sursa (job #1669321) | Cod sursa (job #1672617) | Cod sursa (job #516153)
Cod sursa(job #516153)
#include <fstream>
#include <algorithm>
using namespace std;
#define dim 5001
int v[dim],a[dim],b[dim],best[dim],dap[dim];
int main()
{
ifstream fin("secv.in");
ofstream fout("secv.out");
int i, n,m=1,j,maxim=1,poz=1;
fin>>n;
for(i=1;i<=n;++i)
{
fin>>v[i];
a[i]=v[i];
}
sort(a+1,a+n+1);
for(i=1;i<=n;++i)
{
while(a[i]==a[i+1])
++i;
b[m]=a[i];
++m;
}
--m;
best[1]=1;
for(i=1;i<=n;++i)
{
for(j=i-1;j>=0;--j)
if(v[i]>v[j])
if(best[j]+1>best[i])
best[i]=best[j]+1;
//best[i]=val(best[j]+1,best[i]);
if(maxim<best[i])
{
maxim=best[i];
poz=i;
}
}
if(maxim!=m)
fout<<"1";
else
{
int nr=v[poz],f=1;
for(i=poz;i>=1;--i)
{
if(best[i]==maxim)
{
dap[f]=v[i];
++f;
--maxim;
}
if(maxim==0)
break;
}
--f;
sort(dap+1,dap+f+1);
int ok=1;
for(j=1;j<=n;++j)
if(b[j]!=dap[j])
ok=0;
if(ok==0)
fout<<"1";
else
fout<<poz-i+1;
}
return 0;
}