Cod sursa(job #109616)

Utilizator szzeretlekxyz abcd szzeretlek Data 25 noiembrie 2007 12:07:03
Problema Economie Scor 0
Compilator c Status done
Runda preONI 2008, Runda 1, Clasa a 9-a Marime 0.67 kb
#include <stdio.h>
#include <stdlib.h>

int main(){
	int N,i;
	int *values;
	int *sol;
	int nsol = 0;
	int j;
	int found = 1;
	FILE *in = fopen("economie.in","r");
	FILE *out = fopen("economie.out","w");
	
	fscanf(in,"%d",&N);

	values = (int*)malloc(N*sizeof(int));
	sol    = (int*)malloc(N*sizeof(int));
	for(i = 0;i < N; i++)
		fscanf(in,"%d",&values[i]);
	
	for(i = 0;i < N;i++){
		found = 0;
		for(j = 0;j < nsol; j++)
			if(values[i] == sol[j])
				found = 1;
		if( (!found ) && ( (values[i] & (values[i] - 1)) == 0 ) )
			sol[nsol++] = values[i];
	}
	fprintf(out,"%d\n",nsol);
	for(j = 0;j < nsol; j++)
		fprintf(out,"%d\n",sol[j]);

	return 0;
}