Cod sursa(job #1529588)

Utilizator paul777Astalas Paul paul777 Data 21 noiembrie 2015 02:42:13
Problema Subsir crescator maximal Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 1.21 kb
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");

long inv_poz(long v[],long p)
{
    int ok=1,i;
    for(i=0;i<p;i++)
        if(v[i]>v[p])
        {
            break;
            ok=0;
        }
    return ok;
}

long inv_neg(long v[],long n,long p)
{
    int ok=1,i;
    for(i=p+1;i<n;i++)
        if(v[i]<v[p])
        {
            break;
            ok=0;
        }
    return ok;
}

int main()
{
    long n,i,m,j,k=0,inv_d,inv_u;
    f >> n;
    long v[n],u[n];
    for(i=0;i<n;i++)
            f >> v[i];

     for(i=0;i<n-1;i++)
        for(j=i+1;j<n;j++)
            if(v[j]==v[i])v[j]=-1;
    for(i=0;i<n;i++)
        if(v[i]!=-1)
        {
            u[k]=v[i];
            k++;
        }
    m=k;

    inv_d=0;
    inv_u=0;
    for(i=0;i<m;i++)
    {
        if(inv_poz(u,i)==1)inv_u++;
        if(inv_neg(u,m,i)==1)inv_d++;
    }

    if(inv_u>inv_d)
    {
        g << inv_u << endl;
        for(i=0;i<inv_u;i++)
            g << "1 ";
    }
        else
        {
            g << inv_d << endl;
        for(i=0;i<inv_d;i++)
            g << "1 ";
        }




    f.close();
    g.close();
    return 0;
}