Cod sursa(job #900704)

Utilizator jsteJames Sawyer jste Data 28 februarie 2013 21:22:44
Problema Subsir crescator maximal Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 1.23 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <utility>
using namespace std;

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

int n;
vector<long> v;
pair<int,int> mm;
int main()
{
        f>>n;
        long k=0;mm.first=0;mm.second=0;
        for(int lm=1,e=0,i=0;i<n;i++)
        {
            f>>k;
            if(i==0) v.push_back(k);
            else
            {
                if(k==v[i-1]) e++;
                else
                {
                    v.push_back(k);
                    if(k<v[i-1-e])
                    {
                        if(mm.second-mm.first<i-1-lm-e)
                        {
                            mm.first=lm;
                            mm.second=i-1;
                        }
                        lm=i;
                    }
                }
            }
            if(i==n-1)
            {
                if(mm.second-mm.first<i-1-lm-e)
                        {
                            mm.first=lm;
                            mm.second=i-1;
                        }
            }
        }
        g<<mm.second-mm.first+1<<"\n";
        for(int i=mm.first;i<=mm.second;i++)
            g<<v[i]<<" ";
        return 0;
}