Cod sursa(job #796286)

Utilizator raulstoinStoin Raul raulstoin Data 10 octombrie 2012 22:30:58
Problema Subsir crescator maximal Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 1.1 kb
#include <stdio.h>
#include<vector>
using namespace std;
vector <int> nr[100005];
int n,row,maxrow;
void sir()
{
    int i,x;
    vector<int> :: iterator it;
    while(n)
    {
        int sw=0;
        scanf("%d",&x);
        for(i=0;i<row;i++)
        {
            it=nr[i].begin();
            if(x>=*it)
            {
                sw=1;
                if(x>*it)
                {
                    *it=x;
                    nr[i].push_back(x);
                }
            }
        }
        if(!sw)
        {
            nr[row].push_back(x);
            nr[row].push_back(x);
            row++;
        }
        n--;
    }
}
int main()
{
    int i,nrow;
    freopen("scmax.in","r",stdin);
    freopen("scmax.out","w",stdout);
    scanf("%d",&n);
    sir();
    for(i=0;i<row;i++)
        if(maxrow<nr[i].size())
        {
            maxrow=nr[i].size();
            nrow=i;
        }

    vector<int> :: iterator it;
    printf("%d\n",nr[nrow].size()-1);
    for(it=nr[nrow].begin()+1;it!=nr[nrow].end();it++)
        printf("%d ",*it);
    return 0;
}