Cod sursa(job #871672)

Utilizator 5t3fristea stefan 5t3f Data 4 februarie 2013 23:20:44
Problema Economie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
// economie.cpp : Defines the entry point for the console application.
//

//#include "stdafx.h"
#include "fstream"
#include "algorithm"
#include<vector>
#include<cstdio>
#include<cmath>
using namespace std;
int compare (const void * a, const void * b)
{
  return ( *(int*)a - *(int*)b );
}
ifstream f("economie.in");
ofstream g("economie.out");
int sume[50001],sir[1000],sol[1000],tot,i,nr;
void citire()
{
	f>>nr;
	for (i=0;i<nr;i++)
		f>>sir[i];
	for(i=1;i<=50000;i++)
		sume[i]=0;
}
void rezolvare()
{
	std::sort(sir,sir+nr);
	for(i=0;i<nr;i++)
	{
		if(sir[0]==1)
		{
			tot++;
			sol[0]=1;
			return ;
		}
		sume[0]=1;
		for(i=0;i<nr;i++)
		{
			if(sume[sir[i]]==0)
			{
				sol[tot]=sir[i];
				tot++;
			}
			int q;
			for(q=0;sir[i]+q<=sir[nr-1];q++)
				if(sume[q])
					sume[sir[i]+q]=1;
		}
	}
}
void afisare()
{
	g<<tot<<"\n";
	for(i=0;i<tot;i++)
		g<<sol[i]<<"\n";
}
int main()
{
	citire();
	rezolvare();
	afisare();
	return 0;
}