Pagini recente » Cod sursa (job #2544882) | Cod sursa (job #846839) | Cod sursa (job #307820) | Cod sursa (job #2642787) | Cod sursa (job #2851015)
#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]<<' ';
}