Pagini recente » Cod sursa (job #1448262) | Cod sursa (job #1539606) | Cod sursa (job #1363802) | Cod sursa (job #2600888) | Cod sursa (job #1478175)
#include <fstream>
#include <cmath>
#include <algorithm>
#include <iostream>
const int NMAX = 1001;
const int inf = 0x3f3f3f3f;
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int N;
int v[NMAX];
int d[NMAX];
int answer;
int prei[100];
int poz[100];
int main()
{
f >> N;
for (int i = 1; i <= N; ++i)
{
f >> v[i];
}
//rezolvare
d[1] = 1;
for (int i = 1; i <= N; ++i)
{
d[i] = 1;
poz[i] = -2;
for (int j = 1; j <= i - 1; ++j)
{
if (v[j] < v[i])
{
// d[i] = max(d[i], 1 + d[j]);
if(d[j]+1>d[i]){ d[i] = 1 + d[j]; poz[i] = j; }
}
}
cout << i << ' ' << poz[i] << '\n';
}
answer = -inf;
int pozitie;
for (int i = 1; i <= N; ++i)
{
g << d[i] << " ";
if (answer > d[i])
{
answer = d[i];
pozitie = i;
}
}
g << '\n';
g << answer << '\n';
while (poz[pozitie] != -2)
{
g << v[pozitie] << ' ';
pozitie = poz[pozitie];
}
return 0;
}