Pagini recente » Cod sursa (job #1944978) | Cod sursa (job #2223608) | Cod sursa (job #2769226) | Cod sursa (job #2391239) | Cod sursa (job #75702)
Cod sursa(job #75702)
# include <stdio.h>
const long int MAXN=5000;
long int len,n,v[MAXN+1];
struct {long int inf,pos;} set[MAXN+1];
void citire()
{
FILE *f=fopen("subsir2.in","r");
fscanf(f,"%ld",&n);
long int i;
for (i=1;i<=n;i++) fscanf(f,"%ld",&v[i]);
fclose(f);
}
void calculeaza()
{
long int i;
for (i=2;i<=n;i++)
{
while (len&&set[len].inf>v[i]) len--;
len++;
set[len].inf=v[i];
set[len].pos=i;
}
}
void scrie()
{
long int i;
FILE *g=fopen("subsir2.out","w");
fprintf(g,"%ld\n",len);
for (i=1;i<=len-1;i++)
fprintf(g,"%ld ",set[i].pos);
fprintf(g,"%ld\n",set[len].pos);
fcloseall();
}
int main()
{
citire();
len=1;
set[1].inf=v[1];
set[1].pos=1;
calculeaza();
scrie();
return 0;
}