Cod sursa(job #2851015)

Utilizator kontexVeres Norbert kontex Data 17 februarie 2022 22:30:03
Problema Subsir crescator maximal Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.23 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream be("scmax.in");
ofstream ki("scmax.out");

void scmax(int n,int *a,int *b)
{
    int c;
    for(int i=n;i>0;i--)
    {
        c=a[i];
        for(int j=i;j>0;j--)
        {
            if(a[j]<c){
                c=a[j];
                b[i]++;
            }
        }
    }
}
void out(int n,int *a)
{
    for(int i=1;i<=n;i++)
        cout<<a[i]<<' ';
    cout<<endl;
}
int maxi(int *a,int n)
{
    int legnagyobb = 1;
    for(int i=1;i<=n;i++)
    {
        if(a[i]>a[legnagyobb])
        {
            legnagyobb = i;
        }
    }
    return legnagyobb;
}
void backtrack(int *a,int b,int *d,int &db)
{
    int c=a[b];
    d[++db]=c;
    for(int i=b;i>0;i--)
    {
        if(a[i]<c)
        {
            c=a[i];
            d[++db]=a[i];
        }
    }
}
void swappolo(int *a,int n)
{
    for(int i=1;i<n/2;i++)
        swap(a[i],a[n-i]);
}
int main()
{
    int n;
    be>>n;
    int v[n],sc[n],veg[n],db=0;
    for(int i=1;i<=n;i++){
        be>>v[i];
        sc[i]=0;
    }
    scmax(n,v,sc);
    backtrack(v,maxi(sc,n),veg,db);
    ki<<db<<endl;
    for(int i=db;i>0;i--)
        ki<<veg[i]<<' ';

}