Pagini recente » Cod sursa (job #2374071) | Cod sursa (job #1600615) | Cod sursa (job #679962) | Cod sursa (job #942469) | Cod sursa (job #2063268)
#include <bits/stdc++.h>
using namespace std;
ifstream f("subsir2.in");
ofstream g("subsir2.out");
int n,a[5005],l[5005],lmax,nr,w[5005],il,s1,s2;
void solve() {
int i,j,k,nrk;
for (i=n;i>=1;i--) {
k=0;
for (j=i+1;j<=n;j++)
if (a[i]<=a[j] && l[j]>k)
k=l[j];
l[i]=1+k;
if (lmax<l[i]) {
lmax=l[i];
il=i;
}
}
g<<lmax<<'\n';
s2=-1000001;
while (lmax) {
s1=1000001;
for (j=il+1;j<=n;j++)
if (l[j]==lmax && s2<=a[j] && a[j]<=s1) {
s1=a[j];
il=j;
}
g<<il<<' ';
s2=a[il];
lmax--;
}
}
int main() {
int i,j;
f>>n;
for (i=1;i<=n;i++)
f>>a[i];
solve();
return 0;
}