Cod sursa(job #1323315)

Utilizator waskaalphaAlexandru Iercosan waskaalpha Data 20 ianuarie 2015 22:17:22
Problema Subsir crescator maximal Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.97 kb
// proj2.cpp : Defines the entry point for the console application.
//

#include <stdio.h>
#include <stdlib.h>
#include <string.h>


int main()
{
	FILE *file = NULL;
	long *vector = NULL;
	long N = 0;
	file = fopen("scmax.in", "rt");
	fscanf(file, "%ld", &N);
	vector = (long *)malloc(N * sizeof(long));
	for (int i = 0; i < N; i++) {
		fscanf(file, "%ld", &vector[i]);
	}
	for (int i = 0; i < N - 1; i++) {
		if (vector[i] == vector[i + 1]) {
			memmove(&vector[i], &vector[i + 1], (N - i - 1) * sizeof(long));
			N--;
			i--;
		}
	}
	fclose(file);
	long Sc = 0, Lc = 1, Smax = 0, Lmax = 0;
	for (int i = 0; i < N - 1; i++) {
		Sc = i; Lc = 1;
		while (vector[i] < vector[i + 1] && i < N - 1) {
			Lc++;
			i++;
		}
		if (Lc > Lmax) {
			Lmax = Lc;
			Smax = Sc;
		}
	}
	file = fopen("scmax.out", "wt");
	fprintf(file, "%ld\r\n", Lmax);
	for (long i = 0; i < Lmax;  i++) {
		fprintf(file, "%ld ", vector[Smax + i]);
	}
	fclose(file);
	return 0;
}