Pagini recente » Cod sursa (job #883739) | Cod sursa (job #2537962) | Cod sursa (job #2581793) | Cod sursa (job #649647) | Cod sursa (job #3734)
Cod sursa(job #3734)
#include <stdio.h>
#define NMAX 1010
int s[NMAX], max[NMAX], nr[NMAX], n;
long lenmax, lennr;
void read()
{
int i;
scanf("%d\n", &n);
for(i = 0; i < n; ++i)
scanf("%d\n", &s[i]);
}
void find()
{
int i, j;
for(i = 0; i < n; ++i)
{
for(j = i-1, nr[i] = 1, max[i] = 1; j > -1; --j)
{
if( (s[i] > s[j]) && (max[i] <= 1+max[j]) )
{
if(max[i] < 1+max[j])
max[i] = 1+max[j], nr[i] = nr[j];
else if(max[i] == 1+max[j])
nr[i] += nr[j];
}
}
if( lenmax < max[i] )
lenmax = max[i], lennr = nr[i];
else if( lenmax == max[i] )
lennr += nr[i];
}
}
void write()
{
int i;
printf("%ld\n", lenmax);
printf("%ld\n", lennr);
}
int main()
{
freopen("subsir.in", "r", stdin);
freopen("subsir.out", "w", stdout);
read();
find();
write();
fclose(stdin);
fclose(stdout);
return 0;
}