Pagini recente » Cod sursa (job #1574844) | Cod sursa (job #2573314) | Cod sursa (job #1152960) | Cod sursa (job #992950) | Cod sursa (job #1010666)
#include <stdio.h>
int main()
{
FILE* fr = fopen("scmax.in", "r");
FILE* fw = fopen("scmax.out", "w");
int n;
fscanf(fr, "%d", &n);
int *A = new int[n];
for(int i = 0; i < n; i++)
fscanf(fr, "%d", A + i);
int *B = new int[n],
*C = new int[n];
for(int i = 0; i < n; i++)
{
B[i] = 0;
C[i] = 0;
}
B[n-1] = 1;
C[n-1] = -1;
int mA = -1, mB = 0;
for(int i = n-2; i >= 0; i--)
{
if(A[i] < A[i+1])
{
B[i] = B[i+1] + 1;
C[i] = i+1;
if(mA < B[i])
{
mA = B[i];
mB = i;
}
}
else if (A[i] == A[i+1])
{
B[i] = B[i+1];
C[i] = C[i+1];
}
}
fprintf(fw, "%d\n", mA);
for(int i = mB; i != -1; i = C[i])
fprintf(fw, "%d ", A[i]);
return 0;
}