Pagini recente » Cod sursa (job #2655269) | Cod sursa (job #1972889) | Cod sursa (job #1894244) | Cod sursa (job #307911) | Cod sursa (job #875960)
Cod sursa(job #875960)
#include<cstdio>
#define MAX_N 50005
FILE *f=fopen("subsir2.in","r");
FILE *g=fopen("subsir2.out","w");
using namespace std;
int n,v[MAX_N],len[MAX_N],next[MAX_N],poz[MAX_N];
inline void read ( void )
{
fscanf(f,"%d",&n);
for( int index(1) ; index <= n; ++index)
fscanf(f,"%d", &v[index]);
}
inline void solve ( void )
{
int i;
for( i=n; i>=1 ; --i)
{
len[i]=1;
next[i]=i;
int minim=1<<30;
int min=1000001;
for(int j = i+1 ; j <= n ; ++j )
{
if( v[j] > v[i])
{
if( len[j]<minim && v[j]<min )
{
minim=len[j];
next[i]=j;
len[i]=len[j]+1;
}
else
if( len[j]==minim && v[j]<min && v[j] <= v[next[i]])
next[i]=j;
if(v[j]<min)
min=v[j];
}
}
}
}
int main()
{
read();
solve();
return 0;
}