Pagini recente » Cod sursa (job #2280554) | Istoria paginii runda/simulare-onis-finala/clasament | Cod sursa (job #1913979) | Istoria paginii runda/x_test67/clasament | Cod sursa (job #691106)
Cod sursa(job #691106)
#include <fstream>
#include<iostream>
#include <string.h>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
typedef struct result{
int lung;
char s[100];
};
result calcul_subsir(long *v, int n, int minim, int pos){
cout << minim << " " << pos << endl;
if(pos >= n){
result a;
a.lung = 0;
strcpy(a.s, " ");
return a;
}
result res1;
result res2 = calcul_subsir(v, n, minim, pos + 1);
if(v[pos] > minim){
res1 = calcul_subsir(v, n, v[pos], pos + 1);
res1.lung ++;
char nr[100];
sprintf(nr, "%d", v[pos]);
strcat(nr, " ");
strcat(nr, res1.s);
strcpy(res1.s, nr);
if(res1.lung > res2.lung)
return res1;
}
return res2;
}
int main(){
int n;
long *v;
fin >> n;
v = new long[n];
for(int i = 0; i < n; i++){
fin >> v[i];
}
result res = calcul_subsir(v, n, -1, 0);
fout << res.lung << endl << res.s;
return 1;
}