Cod sursa(job #1318280)

Utilizator sabauandrei98Sabau Andrei sabauandrei98 Data 15 ianuarie 2015 20:05:33
Problema Subsir crescator maximal Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 1.18 kb
#include <iostream>
#include <limits.h>
#include <cmath>
#include <string>
#include <stdio.h>
#include <algorithm>
#include <stdlib.h>
#include <vector>
#include <stack>
#include <map>
#include <fstream>
using namespace std;

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

int i,j,n,v[100001];
vector <int> ans;

int main()
{
    f>>n;
    for(i=1; i<=n; i++)
        f>>v[i];

    int best = 0;

    for(i=2; i<=n; i++)
        if (v[i-1] <= v[i])
        {
            int curr = 0;
            for(j=i; j<=n and v[j-1] <= v[j]; j++)
                if (v[j-1] < v[j])
                    curr++;

            if (curr > best)
            {
                ans.clear();
                int aux = v[i-1];
                ans.push_back(v[i-1]);

                for(j=i; j<=n and v[j-1] <= v[j]; j++)
                {
                    if (v[j] != aux)
                    {
                        ans.push_back(v[j]);
                        aux = v[j];
                    }
                }
            }
            i = j;
        }

    g<<ans.size()<<endl;
    for(i=0; i<ans.size(); i++)
            g<<ans[i]<<" ";

    return 0;
}