Cod sursa(job #560976)

Utilizator RobertBBadea Corneliu Robert RobertB Data 18 martie 2011 19:37:46
Problema Economie Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <iostream>
#include <fstream>
using namespace std;

int vector[1000];
int keep[1000];


int functie( int x, int m, int t )
{
	if( m == 0 )
	{
		cout<<!x%keep[0];
		return !x%keep[0];
	}
	else
	{
		bool OK=false;
		int j = x/keep[t];
		for( int i=0;i<=j;i++ )
		{
			OK = OK || functie( x-keep[m]*i, m-1,t );
			if( OK == true )
			{
				cout<<1;
				break;
			}
		}
		
	}
}



int main()
{
	ifstream citire("economie.in");
	ofstream scriere("economie.out");
	int N,i;
	citire>>N;
	int t=0;
	for( i=0;i<N;i++ )
	{
		citire>>vector[i];
	}
	sort(&vector[0], &vector[N]);
	keep[0]=vector[0];
	for( i=1;i<N;i++ )
	{
		if ( !functie( vector[i],i-1,t ) )
		{
			t++;	
			keep[t]=vector[i];
		}
	}
	scriere<<t<<"\n";
	for( i=0;i<t;i++ )
	{
		scriere<<keep[i]<<" ";
	}
}