Cod sursa(job #2039767)

Utilizator razvan171514Razvan Mihai razvan171514 Data 14 octombrie 2017 21:35:30
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.14 kb
#include <fstream>
#include <climits>
#define lim 100003
using namespace std;
ifstream f ("scmax.in");
ofstream g ("scmax.out");
int n,v[lim],position=1;;
pair<int,int>Limits[lim];
//int mat[10000][10000];
void read ()
{
    f>>n;
    for (int i=1;i<=n;++i)
        f>>v[i];
}
int bin_search(int n)
{
    for (int i=1;i<=position;++i)
        if (n>=Limits[i].first)
            return i;

}
int maxim ()
{
    int maxi=INT_MIN;
    for (int i=1;i<position;++i)
        maxi=max(Limits[i].second,Limits[i+1].second);
    return maxi;
}
void print ()
{
    for (int i=1;i<=position;++i)
        g<<Limits[i].first<<' ';
    g<<'\n';
    for (int i=1;i<=position;++i)
        g<<Limits[i].second<<' ';
    g<<'\n';
}
int main()
{
    read();
    for (int i=1;i<=n;++i)
    {
        if (Limits[position].first>=v[i])
        {
            ++position;
            Limits[position].first=v[i];
            Limits[position].second=1;
        }
        else
        {
            Limits[bin_search(v[i])].first=v[i];
            ++Limits[bin_search(v[i])].second;
        }

    }
    g<<maxim();
    return 0;
}