Cod sursa(job #2191924)

Utilizator lonca.sorin1Lonca Sorin lonca.sorin1 Data 4 aprilie 2018 09:40:30
Problema Subsir crescator maximal Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 1.02 kb
#include <iostream>
#include <fstream>
#include <climits>

using namespace std;

ifstream f("scmax.in");
ofstream g("scmax.out");

int x[100010], k[100010], pz[100010], nr;

int maxi(int poz)
{
    int mx = INT_MIN;
    for (int i = 1; i <= poz; i++)
        if (k[i] > mx && x[i] < x[i + 1])
            mx = k[i];
    return mx;
}

int main()
{
    int n, maX, actual, mx = INT_MIN;
    f>>n;
    for (int i = 1; i <= n; i++)
        f>>x[i];
    for (int i = 1; i <= n; i++)
    {
        maX = maxi(i - 1);
        k[i] = max(maX + 1, k[i]);
        if (k[i] == 0)
        {
            nr = 1;
            pz[nr] = i;
            actual = x[i];
        }
        else
            if (x[i] > actual && k[i] > 0)
            {
                actual = x[i];
                pz[++nr] = i;
            }
    }
    //for (int i = 1; i <= n; i++)
      //  if (mx < k[i])
        //    mx = k[i];
    g<<nr<<'\n';
    for (int i = 1; i <= nr; i++)
        g<<x[pz[i]]<<" ";
    return 0;
}