Pagini recente » Cod sursa (job #3171128) | Cod sursa (job #1964490) | Cod sursa (job #480289) | Cod sursa (job #1679864) | Cod sursa (job #1320605)
#include <fstream>
using namespace std;
int a[20], p[20], d[20], i, j,poz, max, max2,n;
void afisare(int k){
ofstream fout("scmax.out");
while (k > 0){
fout << " "<< a[k];
k = p[k];
}
fout.close();
}
int citire(){
ifstream fin("scmax.in");
int n;
fin >> n;
for (i = 0; i < n; i++){
fin >> a[i];
}
return n;
}
void dinamica(int n){
ofstream fout("scmax.out");
d[n] = 1;
p[n] = 0;
max2 = n;
for (i = n - 1; i >= 1; i--){
max = 0; poz = 0;
for (j = i + 1; j <= n; j++){
if (a[i] < a[j] && d[j] > max){
max = d[j] + 1;
poz = j;
}
p[i] = poz;
d[i] = max;
if (d[i] > d[max2]) max2 = i;
}
}
fout << max2 << "\n";
afisare(n);
fout.close();
}
int main(){
n = citire();
dinamica(n);
return 0;
}