Cod sursa(job #1118106)

Utilizator roparexRoparex roparex Data 23 februarie 2014 23:58:20
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include<cstdio>
int n,v[101],m[101],i;
int fbin(int x,int y)
{
    int mid=(x+y)/2;
        if(mid<=0) return 0;

    if((v[i]>m[mid]||m[mid]==0)&&v[i]<m[mid+1]) return mid;
    if(v[i]>m[mid]) return fbin(x,mid-1);
    if(v[i]<m[mid+1]) return fbin(mid+1,y);
    return 0;
}
int main()
{
    int deg;
    freopen("scmax.in","rt",stdin);
    freopen("scmax.out","wt",stdout);
    scanf("%ld",&n);
    int maxim=n;
    for(i=1;i<=n;i++)
        scanf("%ld",&v[i]);
        m[n]=v[n];
    for(i=n-1;i>=1;i--)
    {
        deg=fbin(i,n);
        m[deg]=v[i];
        if(deg<maxim&&deg!=0) maxim=deg;
    }
    printf("%ld\n",maxim);
    for(i=n-maxim+1;i<=n;i++)
        printf("%ld ",m[i]);
}