Pagini recente » Cod sursa (job #2372666) | Cod sursa (job #1363526) | Cod sursa (job #2091543) | Cod sursa (job #1815465) | Cod sursa (job #2056183)
#include<stdio.h>
#include<algorithm>
using namespace std;
FILE*f=fopen("subsir2.in","r");
FILE*g=fopen("subsir2.out","w");
int n,lmn,ip,l[10005],v[10005];
void citire() {
int i;
fscanf(f,"%d",&n);
for(i=1;i<=n;i++) fscanf(f,"%d",&v[i]);
}
void solve() {
int i,j,mn,mnnr;
l[n]=1; lmn=0; ip=1;
for(i=n-1;i>=1;i--) {
mn=100000000; mnnr=10000000;
for(j=i+1;j<=n;j++) {
if(v[j]<mnnr) mnnr=v[j];
if((v[j]<=mnnr||mnnr==0)&&v[i]<v[j])
mn=min(mn,l[j]);
}
l[i]=mn+1;
if(l[i]>lmn&&l[i]!=100000001) {lmn=l[i]; ip=i;}
}
}
void afis() {
int u=0,i;
fprintf(g,"%d\n",lmn);
for(i=1;i<=n;i++) {
if(l[i]==lmn&&v[i]>u) {fprintf(g,"%d ",i); u=v[i]; lmn--;}
}
}
int main() {
citire();
solve();
afis();
return 0;
}