Cod sursa(job #130390)

Utilizator mithyPopovici Adrian mithy Data 31 ianuarie 2008 23:36:48
Problema Economie Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <stdio.h>
#include <stdlib.h>
#include <vector>
#define NMax 50001

int n, m[NMax];
std::vector<int> sub;
FILE *f, *g;

void citire();
void rez();
int comp( const void *a, const void *b )
{ return ( *(int*)a - *(int*)b ); }

int main()
{
	citire();
	rez();

	return 0;
}
void rez()
{
	int i, j, max, ok;
	sub.push_back( m[0] );

	for (i=1; i<n; i++)
	{
		ok = 0;
		max = sub.size();
		for (j=0; j<max && !ok; j++)
			if ( m[i] % sub[j] == 0 )
				ok = 1;

		if ( !ok )
			sub.push_back(m[i]);
	}

	max = sub.size();
	fprintf( g, "%d\n", max );
	for (i=0; i<max; i++)
		fprintf( g, "%d\n", sub[i] );

}
void citire()
{
	int i;
	f = fopen( "economie.in", "rt" );
	g = fopen( "economie.out", "wt" );

	fscanf( f, "%d", &n );
	for (i=0; i<n; i++)
		fscanf( f, "%d", &m[i] );

	qsort( (void*) m, n, sizeof(m[0]), comp );
}