Pagini recente » Cod sursa (job #3181971) | Cod sursa (job #2291342) | Cod sursa (job #2626993) | Cod sursa (job #2581122) | Cod sursa (job #2604317)
#include <stdio.h>
#include <stdlib.h>
void read(int* a, int n, FILE* in) {
for(int i = 0; i < n; i++)
fscanf(in, "%d", &a[i]);
}
void subsir(int* a, int n, int* start, int* finish, int* ct) {
int start2 = 0, finish2 = 0;
int ct2 = 1;
for(int i = 1; i < n; i++) {
if(a[i] > a[i - 1]) {
finish2 = i;
ct2++;
} else if(a[i] == a[i - 1]) {
finish2 = i;
}
else if(a[i] < a[i - 1]) {
if(ct2 > *ct) {
(*start) = start2;
(*finish) = finish2;
(*ct) = ct2;
}
ct2 = 1;
finish2 = i;
start2 = i;
}
}
if(ct2 > *ct) {
(*start) = start2;
(*finish) = finish2;
(*ct) = ct2;
}
}
int main() {
FILE* in = fopen("scmax.in", "r");
FILE* out = fopen("scmax.out", "w");
int n;
fscanf(in, "%d", &n);
int* a = (int*)malloc(sizeof(int) * n);
read(a, n, in);
int start = 0, finish = 0, ct = 1;
subsir(a, n, &start, &finish, &ct);
fprintf(out, "%d\n", ct);
for(int i = start; i <= finish; i++)
if(i == 0)
fprintf(out, "%d ", a[i]);
else if(a[i] != a[i - 1])
fprintf(out, "%d ", a[i]);
return 0;
}