Cod sursa(job #537281)

Utilizator alinalinaMertoiu Alina alinalina Data 20 februarie 2011 15:26:47
Problema Subsir crescator maximal Scor 10
Compilator c Status done
Runda Arhiva educationala Marime 0.65 kb
#include<stdio.h>
#define dim 100000
int a[dim],i,j,k,best,r,n,max;
struct da {int x,y,l;} b[dim];

int main ()
{FILE *f=fopen("scmax.in","r"), *g=fopen("scmax.out","w");
fscanf(f,"%d",&n);
for(i=1;i<=n;i++) fscanf(f,"%d",&a[i]);

k=1;
b[1].x=1;
b[1].l=1;
best=a[1];
for(i=2;i<=n;i++) 
	if(best<a[i]) {b[k].y=i;
				   best=a[i];
				   b[k].l++;
			if(b[k].l>max) {max=b[k].l;r=k;}}
	else if (b[k].l!=1 && best!=a[i])
	i++;
	else if(best!=a[i])
	{k++;
			b[k].x=i;
			b[k].l=1;
			best=a[i];}
	
fprintf(g,"%d\n",b[r].l);
for(i=b[r].x;i<=b[r].y;i++) if(a[i-1]!=a[i]) fprintf(g,"%d ",a[i]);

fclose(f);
fclose(g);
return 0;

}