Pagini recente » Cod sursa (job #1301504) | Cod sursa (job #1415549) | Cod sursa (job #2925569) | Cod sursa (job #2869877) | Cod sursa (job #2246836)
#include <fstream>
using namespace std;
int n, i, j, k, maxim=-1, v[5001], l[5001], poz, minim=2000000000, p, sol[5001];
int main () {
ifstream fin ("subsir2.in");
ofstream fout ("subsir2.out");
fin>>n;
for (i=1;i<=n;i++) {
fin>>v[i];
}
for (i=1;i<=n;i++) {
l[i]=1;
for (j=i-1;j>=1;j--) {
if (v[i]>=v[j]) {
if (l[i]<l[j]+1)
l[i]=l[j]+1;
}
if (l[i]>maxim) {
maxim=l[i];
}
}
}
fout<<maxim<<"\n";
p=maxim;
poz=n+1;
while (p>0) {
minim=2000000000;
for (i=poz-1;i>=1;i--) {
if (l[i]==p) {
if (v[i]<minim) {
minim=v[i];
poz=i;
}
}
}
sol[p]=poz;
p--;
}
for (i=1;i<=maxim;i++) {
fout<<sol[i]<<" ";
}
return 0;
}