Cod sursa(job #1322667)

Utilizator waskaalphaAlexandru Iercosan waskaalpha Data 20 ianuarie 2015 11:38:02
Problema Subsir crescator maximal Scor 5
Compilator cpp Status done
Runda Arhiva educationala Marime 1.09 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 *maxv = NULL;
	long *testv = NULL;
	long N = 0;
	file = fopen("scmax.in", "rt");
	fscanf(file, "%ld", &N);
	N = N + 1;
	vector = (long *)malloc(N * sizeof(long));
	maxv = (long *)malloc(N * sizeof(long));
	testv = (long *)malloc(N * sizeof(long));
	for (int i = 0; i < N; i++) {
		maxv[i] = 0;
		testv[i] = 0;
	}
	for (int i = 0; i < N; i++) {
		fscanf(file, "%ld", &vector[i]);
	}
	fclose(file);
	int j = 0, k = 0;
	bool active = false;
	for (int i = 0; i < N; i++) {
		if (vector[i] >= testv[j]) {
			testv[++j] = vector[i];
			active = true;
		} else {
			active = false;
			if (j > k) {
				for (int _i = 0; _i < j; _i++) {
					maxv[_i] = testv[_i];
					testv[_i] = 0;
				}
			}
			k = j;
			j = 0;
		}
	}
	file = fopen("scmax.out", "wt");
	fprintf(file, "%d\r\n", k);
	for (int i = 0; i < k; i++) {
		fprintf(file, "%ld ", maxv[i]);
	}
	fclose;
	return 0;
}