Pagini recente » Cod sursa (job #2770129) | Rating Oprisan Andrei Sergiu (oprisan_andrei2003) | Cod sursa (job #1879858) | Cod sursa (job #2487760) | Cod sursa (job #2258586)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
long long a[100000];
long long scmax[100000];
int main() {
int n;
int scmax_len = 0;
FILE* ip = fopen("scmax.in", "r");
if (!ip) {
perror("could not open input file");
exit(1);
}
FILE* op = fopen("scmax.out", "w");
if (!op) {
perror("could not open output file");
exit(1);
}
fscanf(ip, "%d", &n);
for (int i = 0; i < n; i++) {
fscanf(ip, "%lld", &a[i]);
}
int max_len = 1;
int end_index = 0;
int crt_len = 1;
int crt_end = 0;
for (int i = 1; i < n; i++) {
if (a[i] >= a[i - 1]) {
crt_len++;
crt_end = i;
}
else {
if (crt_len > max_len) {
max_len = crt_len;
end_index = crt_end;
}
crt_len = 1;
crt_end = i;
}
}
if (crt_len > max_len) {
max_len = crt_len;
end_index = crt_end;
}
scmax[0] = a[end_index - max_len + 1];
scmax_len = 1;
for (int i = end_index - max_len + 2; i <= end_index; i++) {
if (a[i] != scmax[scmax_len - 1]) {
scmax[scmax_len] = a[i];
scmax_len++;
}
}
fprintf(op, "%d\n", scmax_len);
for (int i = 0; i < scmax_len; i++) {
fprintf(op, "%lld ", scmax[i]);
}
fclose(ip);
fclose(op);
return 0;
}