Cod sursa(job #1193281)

Utilizator lacraruraduRadu Matei Lacraru lacraruradu Data 31 mai 2014 13:36:48
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.08 kb
#include <fstream>

using namespace std;

ifstream in("subsiruri.in");
ofstream out("subsiruri.out");

const int nmax = 1001;
int v[nmax] , lung[nmax] , nr[nmax];

int main()
{
    int n , i , j , maxim , imax , sol;

    in >> n;

    maxim = 0;
    sol = 0;
    for(i = 1 ; i <= n ; i++)
    {
        in >> v[i];

        nr[i] = 1;
        for(j = 1 ; j < i ; j++)
            if(v[j] < v[i])
                if(lung[i] == lung[j])
                {
                    nr[i] += nr[j];
                    if(nr[i] > 9901)
                        nr[i] -=9901;
                }
                else if(lung[i] < lung[j])
                {
                    lung[i] = lung[j];
                    nr[i] = nr[j];
                }

        lung[i]++;

        if(maxim == lung[i])
        {
            sol += nr[i];
            if(sol > 9901)
                sol -= 9901;
        }
       if(maxim < lung[i])
       {
           maxim = lung[i];
           sol = nr[i];
       }
    }

    out << maxim << '\n' << sol << '\n';
    return 0;
}