Pagini recente » Cod sursa (job #1835223) | Cod sursa (job #184868) | Cod sursa (job #129836) | Cod sursa (job #709439) | Cod sursa (job #1787232)
#include<fstream>
#include<fstream>
using namespace std;
ifstream f ("scmax.in");
ofstream g ("scmax.out");
int n, v[100001] , sol[100001] , ns , a[100001];
void citire ()
{
f >> n;
for (int i = 1; i <=n; ++i)
f >> v[i];
}
void afis (int k)
{
for (int i = 1; i <= k; ++i)
{
sol[i] = a[i];
ns = k;
}
}
bool verif (int k)
{
if (v[a[k]] <= v[a[k-1]] )
return 0;
return 1;
}
int BKT (int k)
{
if (k-1 > ns) afis(k-1);
for (int i = a[k] - 1 + 1; i <= n; ++i)
{
a[k] = i; if (verif (k)) BKT(k + 1);
}
}
int main ()
{
citire();
BKT(1); g << ns << '\n';
for (int i = 1; i <=ns; ++i)
g << v[sol[i]] << ' ';
g.close ();
return 0;
}