Cod sursa(job #1160592)

Utilizator LolkekzorChiorean Tudor Lolkekzor Data 30 martie 2014 17:34:57
Problema Subsir crescator maximal Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.9 kb
#include <fstream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
struct sir{int lung, poz, nrsir;};
int n, i, j, lungMax, nrLungMax, posSirMax, v[1000];
sir data[1000];

int main()
{
    fin>>n;
    for (i=1;i<=n;i++)
        { fin>>v[i]; data[i].lung=1;}
    for (i=n-1;i>0;i--)
        for (j=i+1;j<=n;j++)
        {
            if (v[i]<v[j] && data[j].lung+1>data[i].lung)
            {
                data[i].lung=data[j].lung+1;
                data[i].poz=j;
                if (data[i].lung>lungMax)
                    { lungMax = data[i].lung; nrLungMax=1; posSirMax = i;}
                else if (data[i].lung==lungMax)
                    nrLungMax++;
            }
        }

    fout<<lungMax<<" "<<'\n';//nrLungMax<<'\n';
    while (posSirMax!=0)
    {
        fout<<v[posSirMax]<<" ";
        posSirMax=data[posSirMax].poz;
    }

return 0;
}